Mengelola Kredensial
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Manajemen kunci build iOS dan Android Anda secara lokal untuk memudahkan build di cloud.
Ringkasan
Judul bagian “Ringkasan”Capgo CLI menyimpan kunci build Anda di mesin Anda — tidak pernah di server Capgo . Dengan default mereka hidup di satu file global yang dipakai bersama semua proyek Anda. Anda dapat ~/.capgo-credentials/credentials.jsonmenggunakan mereka --local per-proyek untuk menjaga mereka di satu file per proyek .capgo-credentials.json Ketika Anda menjalankan build, kreditensi yang disimpan digunakan secara otomatis dan dikirimkan secara aman ke Capgo, kemudian dihapus setelah build selesai.
Perintah
Bagian berjudul “Perintah”Kelola Kredensial Secara Interaktif
Bagian berjudul “Kelola Kredensial Secara Interaktif”Cara termudah untuk bekerja dengan kredensial yang disimpan Anda adalah manajer interaktif. Ia membuka TUI (yang sama seperti build init uses) di mana Anda dapat melihat apa yang disimpan, melihat apa yang dikonfigurasi per aplikasi dan platform, mengexport file yang siap digunakan CI/CD, atau menghapus kredensial platform: .env Jendela terminal
bunx @capgo/cli@latest build credentials manage| Deskripsi | __CAPGO_KEEP_0__ |
|---|---|
--appId <appId> | Aplikasi untuk mengelola (mengajak Anda memilih jika diabaikan) |
--platform <ios|android> | Platform untuk mengelola (mengajak jika diabaikan) |
--local | Gunakan file per-proyek .capgo-credentials.json daripada file global |
Lebih suka perintah satu-satunya, yang dapat dieksekusi secara skrip? Gunakan perintah-perintah individu di bawah.
Simpan Kredensial
Bab berjudul “Simpan Kredensial”Simpan kredensial pembangunan Anda secara lokal untuk penggunaan otomatis:
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]Perbarui Kredensial
Bab berjudul “Perbarui Kredensial”Tanpa harus memasukkan semua kembali, Anda dapat memperbarui kredit yang sudah ada:
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]The update perintah ini menggunakan penyatuan tambahan untuk profil pengaturan — profil baru disatukan dengan yang sudah ada. Untuk mengganti seluruh peta pengaturan, tambahkan --overwrite-ios-provisioning-map.
Contoh — tambahkan profil ekstensi ke kredit yang sudah ada:
bunx @capgo/cli@latest build credentials update \ --platform ios \ --ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"Perintah update dapat menerima semua opsi yang sama seperti save tetapi semua opsi tersebut opsional — hanya field yang Anda berikan saja yang diperbarui.
Daftar Kredensial
Judul Bagian “Daftar Kredensial”Lihat kredensial yang disimpan saat ini (kata sandi disembunyikan):
bunx @capgo/cli@latest build credentials list
# List credentials for a specific appbunx @capgo/cli@latest build credentials list --appId com.example.appHapus Kredensial
Judul Bagian “Hapus Kredensial”Hapus kredensial yang disimpan dari mesin lokal Anda:
# Clear all credentialsbunx @capgo/cli@latest build credentials clear
# Clear credentials for a specific app + platformbunx @capgo/cli@latest build credentials clear --appId com.example.app --platform iosMigrasi Kredensial
Judul Bagian “Migrasi Kredensial”Konversi format tunggal profil ke masa depan format multi-target:
bunx @capgo/cli@latest build credentials migrate --platform iosKomando migrasi mendeteksi BUILD_PROVISION_PROFILE_BASE64 kredensial lama, mengubahnya ke CAPGO_IOS_PROVISIONING_MAP, dan menghapus kunci lama. Lihat Migrasi dari Profil Tunggal untuk detailnya.
Menghemat Kredensial iOS
Judul bagian “Menghemat Kredensial iOS”Contoh Lengkap
Judul bagian “Contoh Lengkap”bunx @capgo/cli@latest build credentials save \ --platform ios \ --certificate ./cert.p12 \ --p12-password "YourP12Password" \ --ios-provisioning-profile "com.example.app=./profile.mobileprovision" \ --apple-key ./AuthKey_ABC1234567.p8 \ --apple-key-id "ABC1234567" \ --apple-issuer-id "00000000-0000-0000-0000-000000000000" \ --apple-team-id "TEAM123456"Pilihan iOS
Judul bagian “Pilihan iOS”| Pilihan | Deskripsi | Wajib |
|---|---|---|
--certificate <path> | Path ke file sertifikat .p12 | Ya (rilis) |
--p12-password <password> | Kata sandi untuk sertifikat .p12 | Ya (rilis) |
--ios-provisioning-profile <mapping> | Peta profil provisioning (bundleId=path). Ulangi untuk aplikasi multi-target. Jika hanya ada satu profil dan tidak ada prefix bundleId, CLI secara otomatis diinfer dari profil. | Ya (rilis) |
--apple-key <path> | Path ke App Store Connect API .p8 key | Lihat catatan¹ |
--apple-key-id <id> | ID Sertifikat App Store Connect API | Lihat catatan¹ |
--apple-issuer-id <id> | App Store Connect API ID Pengembang (UUID) | Lihat catatan¹ |
--apple-team-id <id> | ID Tim App Store Connect | Ya |
--apple-id <email> | Alamat email ID Apple untuk unggah password aplikasi khusus (alternatif dari API key) | Lihat catatan² |
--apple-app-specific-password <password> | Password aplikasi khusus (xxxx-xxxx-xxxx-xxxx) | Lihat catatan² |
--apple-app-id <id> | ID aplikasi App Store Connect numerik (misalnya 1234567890) | Lihat catatan² |
--ios-distribution <mode> | Mode distribusi: app_store (default) atau ad_hoc | Tidak |
--output-upload | Aktifkan tautan download sementara untuk artefak build selama Capgo hari | Tidak (default: false) |
--output-retention <seconds> | Berapa lama untuk menjaga keluaran build (misalnya, 3600s) | Tidak (default: 3600s) |
--skip-build-number-bump | Lepaskan otomatis peningkatan nomor build | Tidak |
Apa yang Disimpan
Bagian berjudul “Apa yang Disimpan”Ketika Anda menyimpan kreditur iOS, CLI:
- Membaca file sertifikat dan profil pengembangan
- Mengubahnya ke encoding base64
- Menyimpannya ke
~/.capgo-credentials/credentials.json(atau.capgo-credentials.jsondengan--local) - Mengarsipkan kata sandi dan ID sebagai teks biasa (file lokal saja)
Struktur file yang disimpan:
{ "ios": { "BUILD_CERTIFICATE_BASE64": "...", "CAPGO_IOS_PROVISIONING_MAP": "{\"com.example.app\":{\"profile\":\"...\",\"name\":\"match AppStore com.example.app\"}}", "APPLE_KEY_CONTENT": "...", "P12_PASSWORD": "...", "APPLE_KEY_ID": "ABC1234567", "APPLE_ISSUER_ID": "...", "APP_STORE_CONNECT_TEAM_ID": "TEAM123456", "CAPGO_IOS_DISTRIBUTION": "app_store" }}Menghemat Kredensial Android
Judul bagian “Menghemat Kredensial Android”Contoh Lengkap
Judul Bagian “Contoh Lengkap”bunx @capgo/cli@latest build credentials save \ --platform android \ --keystore ./release.keystore \ --keystore-alias "my-key-alias" \ --keystore-key-password "KeyPassword123" \ --keystore-store-password "StorePassword123" \ --play-config ./play-store-service-account.jsonOpsi Android
Judul Bagian “Opsi Android”| Opsi | Deskripsi | Diperlukan |
|---|---|---|
--keystore <path> | Rute ke file .keystore atau .jks | Ya (rilis) |
--keystore-alias <alias> | Alias kunci di keystore | Ya (rilis) |
--keystore-key-password <password> | Kata sandi untuk alias kunci | Ya (rilis) |
--keystore-store-password <password> | Kata sandi untuk keystore | Ya (rilis) |
--play-config <path> | Jalur ke akun JSON layanan Play Store | Ya (pengiriman) |
Apa yang Disimpan
Bab berjudul “Apa yang Disimpan”Saat Anda menyimpan kredit Android, CLI:
- Membaca file keystore dan akun JSON layanan
- Mengubahnya ke encoding base64
- Menyimpannya ke
~/.capgo-credentials/credentials.json(atau.capgo-credentials.jsondengan--local) - Menyimpan kata sandi dan alias sebagai teks biasa (hanya file lokal)
Struktur file yang disimpan:
{ "android": { "ANDROID_KEYSTORE_FILE": "...", "PLAY_CONFIG_JSON": "...", "KEYSTORE_KEY_ALIAS": "my-key-alias", "KEYSTORE_KEY_PASSWORD": "...", "KEYSTORE_STORE_PASSWORD": "..." }}Menggunakan Kredensial yang Disimpan
Bagian berjudul “Menggunakan Kredensial yang Disimpan”Setelah Anda menyimpan kredensial, mereka secara otomatis digunakan ketika Anda membangun:
# Credentials automatically loaded from ~/.capgo-credentials/credentials.jsonbunx @capgo/cli@latest build request com.example.app --platform iosAnda juga dapat menggantikan kredensial yang disimpan menggunakan variabel lingkungan:
# Environment variables take precedence over saved credentialsBUILD_CERTIFICATE_BASE64="..." \P12_PASSWORD="different-password" \bunx @capgo/cli@latest build request com.example.app --platform iosUrutan keutamaan:
- Variabel lingkungan (prioritas tertinggi)
- Kredensial yang disimpan (
~/.capgo-credentials/credentials.json, atau lokal.capgo-credentials.json) - Tidak ada kredensial (prioritas terendah)
Melihat Kredensial yang Disimpan
Judul bagian “Melihat Kredensial yang Disimpan”Daftar kredensial yang Anda simpan:
bunx @capgo/cli@latest build credentials listContoh output:
📋 Saved Build Credentials:
iOS Credentials: ✓ Certificate (base64) ✓ Provisioning Map (JSON) ✓ Apple Key Content (base64) ✓ P12 Password: ******** ✓ Apple Key ID: ABC1234567 ✓ Apple Issuer ID: 00000000-0000-0000-0000-000000000000 ✓ Team ID: TEAM123456
Android Credentials: ✓ Keystore (base64) ✓ Play Store Config (base64) ✓ Keystore Alias: my-key-alias ✓ Key Password: ******** ✓ Store Password: ********
Location: ~/.capgo-credentials/credentials.json
🔒 These credentials are stored locally on your machine only. When building, they are sent to Capgo but NEVER stored there. They are auto-deleted after build completion.Praktik Keamanan Terbaik
Judul Bagian “Praktik Keamanan Terbaik”Keamanan Penyimpanan Lokal
Judul Bagian “Keamanan Penyimpanan Lokal”-
Izin Akses File
Jendela Terminal # Global credentials directory + filechmod 700 ~/.capgo-credentialschmod 600 ~/.capgo-credentials/credentials.json# Local (per-project) credentials, if you use --localchmod 600 .capgo-credentials.json -
Jangan Pernah Mengirimkan Kredensial
Jendela Terminal # Ignore the per-project credentials file (used with --local)echo ".capgo-credentials.json" >> .gitignoreFile global hidup di direktori rumah Anda, di luar repo.
-
Kredensial Terpisah
- Gunakan kredensial yang berbeda untuk pengembangan lokal vs CI/CD
- Rotasi kredensial secara teratur
- Jangan berbagi kredensial antar anggota tim
Penggunaan CI/CD
Bagian berjudul “Penggunaan CI/CD”Untuk lingkungan CI/CD, prefer variabel lingkungan lebih baik dari kredensial yang disimpan.
Eksportasi siap digunakan .env (direkomendasikan)
Bagian berjudul “Export file .env yang siap digunakan (direkomendasikan)”Daripada meng-encode setiap file kredential secara manual dengan base64 (lihat di bawah), biarkan build credentials manage mengenerate file tersebut untuk Anda:
bunx @capgo/cli@latest build credentials manage# pick your app → choose "Export to .env"Itu menulis sebuah .env.capgo.<appId>.<platform> file (izin 0600) yang berisi setiap kredential yang disimpan sebagai variabel lingkungan — setiap baris adalah rahasia untuk menambahkan ke penyedia CI/CD Anda. Kedua platform kombinasi secara default; tambahkan --platform ios atau --platform android untuk membatasi pada satu.
Referensi Lengkap Variabel Lingkungan
Bab berjudul “Referensi Lengkap Variabel Lingkungan”CLI membaca variabel lingkungan berikut untuk kredit:
Kredensial iOS:
| Variabel | Deskripsi | Format | Wajib |
|---|---|---|---|
BUILD_CERTIFICATE_BASE64 | Sertifikat P12/PKCS12 untuk code signing | Base64 | Ya (rilis) |
CAPGO_IOS_PROVISIONING_MAP | Peta JSON dari ID aplikasi ke data profil pengaturan | String JSON | Ya (rilis) |
P12_PASSWORD | Kata sandi untuk sertifikat P12 | Tekstanya sederhana | Pilihan |
APPLE_KEY_ID | ID Kunci API App Store Connect | String (misalnya, 'ABC1234567') | Lihat catatan¹ |
APPLE_ISSUER_ID | App Store Connect API ID Pengembang | String UUID | Lihat catatan¹ |
APPLE_KEY_CONTENT | App Store Connect API kunci (.p8 file content) | Base64 | Lihat catatan¹ |
APP_STORE_CONNECT_TEAM_ID | ID Tim Pengembang Apple | String (misalnya, “XXXXXXXXXX”) | Ya |
CAPGO_IOS_DISTRIBUTION | Pengaturan Distribusi: app_store (default) atau ad_hoc | String | Tidak |
Kredensial Android:
| Variabel | Deskripsi | Format | Diperlukan |
|---|---|---|---|
ANDROID_KEYSTORE_FILE | File keystore untuk menandatangani APK/AAB | Base64 | Ya (rilis) |
KEYSTORE_KEY_ALIAS | Alias kunci di dalam keystore | String | Ya (rilis) |
KEYSTORE_KEY_PASSWORD | Kata sandi untuk alias kunci | Teks biasa | Ya* |
KEYSTORE_STORE_PASSWORD | Kata sandi untuk file keystore | Teks biasa | Ya* |
PLAY_CONFIG_JSON | JSON akun layanan Google Play | Base64 | Ya (pengiriman) |
*Jika hanya satu kata sandi yang disediakan, maka akan digunakan untuk kedua-duanya KEYSTORE_KEY_PASSWORD dan KEYSTORE_STORE_PASSWORD.
GitHub Contoh Aksi
Bagian berjudul “GitHub Contoh Aksi”name: Cloud Build
on: push: branches: [main]
jobs: build-ios: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: oven-sh/setup-bun@v2 - run: bun install - run: bunx @capgo/cli@latest build request com.example.app --platform ios env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} BUILD_CERTIFICATE_BASE64: ${{ secrets.BUILD_CERTIFICATE_BASE64 }} CAPGO_IOS_PROVISIONING_MAP: ${{ secrets.CAPGO_IOS_PROVISIONING_MAP }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} APPLE_KEY_ID: ${{ secrets.APPLE_KEY_ID }} APPLE_ISSUER_ID: ${{ secrets.APPLE_ISSUER_ID }} APPLE_KEY_CONTENT: ${{ secrets.APPLE_KEY_CONTENT }} APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
build-android: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6 - uses: oven-sh/setup-bun@v2 - run: bun install - run: bunx @capgo/cli@latest build request com.example.app --platform android env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} ANDROID_KEYSTORE_FILE: ${{ secrets.ANDROID_KEYSTORE_FILE }} KEYSTORE_KEY_ALIAS: ${{ secrets.KEYSTORE_KEY_ALIAS }} KEYSTORE_KEY_PASSWORD: ${{ secrets.KEYSTORE_KEY_PASSWORD }} KEYSTORE_STORE_PASSWORD: ${{ secrets.KEYSTORE_STORE_PASSWORD }} PLAY_CONFIG_JSON: ${{ secrets.PLAY_CONFIG_JSON }}Mengatur Nilai Base64
Bagian berjudul “Mengatur Nilai Base64”Untuk mengonversi file kunci Anda ke base64 untuk rahasia CI/CD:
# iOS Certificate (.p12)base64 -i certificate.p12 | tr -d '\n' > certificate_base64.txt
# iOS Provisioning Profiles — use the CLI to generate CAPGO_IOS_PROVISIONING_MAP:bunx @capgo/cli@latest build credentials save --platform ios \ --ios-provisioning-profile "com.example.app=./profile.mobileprovision" \ # ... other options# Then copy CAPGO_IOS_PROVISIONING_MAP from ~/.capgo-credentials/credentials.json to your CI secrets
# iOS App Store Connect Key (.p8)base64 -i AuthKey_XXXXXX.p8 | tr -d '\n' > apple_key_base64.txt
# Android Keystore (.keystore or .jks)base64 -i release.keystore | tr -d '\n' > keystore_base64.txt
# Google Play Service Account JSONbase64 -i play-store-service-account.json | tr -d '\n' > play_config_base64.txtWhy Variabel Lingkungan Lebih Aman
Judul Bagian “Mengapa Variabel Lingkungan Lebih Aman”Ini adalah pendekatan yang lebih aman karena:
- Rahasia diatur oleh platform CI/CD Anda
- Tidak ada file kredit di runner
- Akses kontrol dan rotasi yang mudah
- Jejak audit untuk penggunaan rahasia
Pengaturan Kredit
Judul Bagian “Pengaturan Kredit”Rotasi kredit secara teratur:
- iOS: Buat sertifikat baru dan API kunci setiap tahun
- AndroidUbahlah kata sandi keystore setiap tahun
- Setelah perubahan tim: Rotasikan ketika anggota tim meninggalkan
Perbarui kreditensi yang disimpan:
# Re-run save command with new credentialsbunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...Pengaturan
Bagian berjudul “Pengaturan””Tidak ada kreditensi yang ditemukan”
Bagian berjudul “”Tidak ada kreditensi yang ditemukan””Jika build mengatakan tidak ada kreditensi yang ditemukan:
-
Periksa apakah kreditur disimpan:
Jendela terminal bunx @capgo/cli@latest build credentials list -
Simpan kreditur jika hilang:
Jendela terminal bunx @capgo/cli@latest build credentials save --platform ios ... -
Periksa apakah file kreditur ada:
Jendela terminal ls -la ~/.capgo-credentials/credentials.json # globalls -la .capgo-credentials.json # local (--local)
“Permission denied” when reading credentials
Tolak akses ketika membaca krediturJudul bagian “Tolak akses ketika membaca kreditur”
chmod 600 ~/.capgo-credentials/credentials.json # globalchmod 600 .capgo-credentials.json # localKredensial tidak digunakan
Bagian berjudul “Kredensial tidak digunakan”Periksa bahwa platform yang benar telah ditentukan:
# Make sure --platform matches saved credentialsbunx @capgo/cli@latest build request com.example.app --platform ios # Uses ios credentialsbunx @capgo/cli@latest build request com.example.app --platform android # Uses android credentialsHapus dan simpan ulang kredensial
Bagian berjudul “Hapus dan simpan ulang kredensial”Jika kredensial tampak rusak:
# Clear all credentialsbunx @capgo/cli@latest build credentials clear
# Save againbunx @capgo/cli@latest build credentials save --platform ios ...Migrasi dari Variabel Lingkungan
Judul: Migrasi dari Variabel LingkunganJika Anda saat ini menggunakan variabel lingkungan, Anda dapat memigrasikan ke kredit yang disimpan:
-
Ambil variabel lingkungan Anda saat ini
Jendela terminal echo $BUILD_CERTIFICATE_BASE64 # Verify they exist -
Kembalikan file base64 ke file asli (jika perlu) (jika perlu)
Jendela terminal echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision -
Simpan menggunakan CLI
Jendela terminal bunx @capgo/cli@latest build credentials save \--platform ios \--certificate ./cert.p12 \--ios-provisioning-profile ./profile.mobileprovision \--p12-password "$P12_PASSWORD" \--apple-key-id "$APPLE_KEY_ID" \--apple-issuer-id "$APPLE_ISSUER_ID" \--apple-team-id "$APP_STORE_CONNECT_TEAM_ID"Jika Anda memiliki kredit yang disimpan dalam format lama (satu
BUILD_PROVISION_PROFILE_BASE64), jalankan:Jendela terminal bunx @capgo/cli@latest build credentials migrate --platform iosIni mengonversi profil lama tunggal ke
CAPGO_IOS_PROVISIONING_MAPdan menghapusBUILD_PROVISION_PROFILE_BASE64danAPPLE_PROFILE_NAMEkunci lama. -
Uji bangun
Jendela terminal bunx @capgo/cli@latest build request com.example.app --platform ios -
Hapus variabel lingkungan (opsional)
Jendela terminal unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64
Lokasi File
Bab berjudul “Lokasi File”Kredensial disimpan dalam sebuah file JSON tunggal:
- Global (default):
~/.capgo-credentials/credentials.json— digunakan secara bersamaan di semua proyek Anda - Local (dengan
--local):.capgo-credentials.jsondi root project Anda — menggantikan file global untuk project tersebut
File ini dibuat secara otomatis pertama kali Anda menyimpan kunci akses. Tambahkan .capgo-credentials.json ke .gitignore jadi kunci akses per-project tidak pernah dikomit.
Langkah-Langkah Selanjutnya
Bab berjudul “Langkah-Langkah Selanjutnya”- Pembelajaran Dasar - Buat build pertama Anda
- Build iOS - Konfigurasi build spesifik iOS
- Build Android - Konfigurasi build spesifik Android
- Pengaturan Masalah - Masalah umum dan solusi
Memerlukan Bantuan?
Judul bagian “Memerlukan Bantuan?”- 📚 Panduan pengaturan masalah
- 💬 Komunitas Discord
- 📧 Email: support@capgo.app
Teruskan dari Pengelolaan Kredensial
Judul bagian “Teruskan dari Pengelolaan Kredensial”Jika Anda menggunakan Pengelolaan Kredensial untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo Otomatisasi CI/CD untuk alur kerja produk di Capgo Otomatisasi CI/CD, Capgo Pembangunan Asli untuk alur kerja produk di Capgo Pembangunan Asli, Capgo Integrasi untuk alur kerja produk di Capgo Integrasi, Integrasi CI/CD untuk detail implementasi di Integrasi CI/CD, dan GitHub Integrasi Aksi untuk detail implementasi di GitHub Integrasi Aksi.