Mengelola Kreditensial
Salin 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 awan.
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, ~/.capgo-credentials/credentials.json, yang dibagikan di semua proyek Anda. --local Pass untuk menyimpan mereka per-proyek .capgo-credentials.json instead. When you run a build, the saved credentials are used automatically and sent securely to Capgo, then deleted after the build completes.
Perintah
Bagian berjudul “Perintah”Kelola Kredensial Secara Interaktif
Bagian berjudul “Manajemen Kredensial Interaktif”Cara tercepat untuk bekerja dengan kredensial yang disimpan Anda adalah manajer interaktif. Ini membuka TUI (yang sama seperti build init digunakan) di mana Anda dapat melihat apa yang disimpan, melihat apa yang dikonfigurasi per aplikasi dan platform, .env mengexport file yang siap digunakan CI/CD, atau menghapus kredensial platform:
bunx @capgo/cli@latest build credentials manage| Pilihan | Deskripsi |
|---|---|
--appId <appId> | Aplikasi untuk diatur (mengajak Anda memilih jika ditinggalkan) |
--platform <ios|android> | Platform untuk diatur (mengajak jika ditinggalkan) |
--local | Pakai per-proyek .capgo-credentials.json bukalagi file global |
Apakah Anda ingin menggunakan perintah tunggal, dapat dieksekusi secara skrip? Gunakan perintah-perintah di bawah ini.
Simpan Kredensial
Bagian 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
Bagian berjudul “Perbarui Kredensial”Perbarui kredensial yang sudah ada tanpa harus memberikan semuanya lagi:
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]The update perintah menggunakan penyatuan tambahan untuk profil pengaturan — profil baru disatukan dengan profil yang ada. Untuk mengganti seluruh peta pengaturan, tambahkan --overwrite-ios-provisioning-map.
Contoh — tambahkan profil ekstensi ke kredit yang ada:
bunx @capgo/cli@latest build credentials update \ --platform ios \ --ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"Perintah update menerima opsi yang sama seperti save tetapi semua adalah opsional — hanya bidang yang Anda berikan yang diperbarui.
Daftar Kredit
Bagian berjudul “Daftar Kredit”Lihat kredit 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
Bagian berjudul “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
Bagian berjudul “Migrasi Kredensial”Konversi format tunggal-profil legasi ke format multi-target baru:
bunx @capgo/cli@latest build credentials migrate --platform iosPerintah migrasi mendeteksi format lama BUILD_PROVISION_PROFILE_BASE64 kredensial, mengubahnya menjadi CAPGO_IOS_PROVISIONING_MAP, dan menghapus kunci lama. Lihat Migrasi dari Profil tunggal untuk informasi lebih lanjut.
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> | Alamat file sertifikat .p12 | Iya (rilis) |
--p12-password <password> | Kata sandi untuk file sertifikat .p12 | Ya (rilis) |
--ios-provisioning-profile <mapping> | Petaan profil pengaturan (bundleId=path). Ulangi untuk aplikasi multi-target. Jika hanya satu profil dan tidak ada prefix bundleId, CLI secara otomatis mengidentifikasi dari profil. | Ya (rilis) |
--apple-key <path> | Jalur ke App Store Connect API .p8 key | Lihat catatan¹ |
--apple-key-id <id> | App Store Connect API ID Kunci | Lihat catatan¹ |
--apple-issuer-id <id> | App Store Connect API ID Pengeluarkan (UUID) | Lihat catatan¹ |
--apple-team-id <id> | ID Tim App Store Connect | Ya |
--apple-id <email> | Alamat email ID Apple untuk unggah password aplikasi (alternatif dari API key) | Lihat catatan² |
--apple-app-specific-password <password> | Password aplikasi (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 Capgo yang berlaku waktu terbatas untuk artefak build | Tidak (default: false) |
--output-retention <seconds> | Berapa lama untuk menjaga output build (misalnya 3600s) | Tidak (default: 3600s) |
--skip-build-number-bump | Lewati peningkatan otomatis nomor versi | Tidak |
Apa yang Disimpan
Judul bagian “Apa yang Disimpan”Ketika Anda menyimpan kreditensi iOS, CLI:
- Membaca file sertifikat dan profil pengembangan
- Mengubahnya ke encoding base64
- Menyimpannya di
~/.capgo-credentials/credentials.json(atau.capgo-credentials.jsondengan--local) - Menyimpan 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" }}Menyimpan Kredensial Android
Judul Bagian “Menyimpan 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.jsonPilihan Android
Judul Bagian “Pilihan Android”| Pilihan | Deskripsi | Diperlukan |
|---|---|---|
--keystore <path> | Path 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
Judul bagian “Apa yang Disimpan”Ketika Anda menyimpan kredit Android, CLI:
- Membaca file keystore dan akun JSON layanan
- Mengubahnya ke encoding base64
- Menyimpannya ke
~/.capgo-credentials/credentials.jsonatau.capgo-credentials.jsondengan--local) - Menyimpan kata sandi dan alias sebagai teks biasa (file lokal saja)
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 prioritas:
- Variabel lingkungan (prioritas tertinggi)
- Kredensial disimpan (
~/.capgo-credentials/credentials.json, atau lokal.capgo-credentials.json) - Tidak ada kredensial (prioritas terendah)
Melihat Kredensial Disimpan
Bagian berjudul “Melihat Kredensial Disimpan”Daftar kredensial yang disimpan:
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
Bagian berjudul “Praktik Keamanan Terbaik”Keamanan Penyimpanan Lokal
Judul Bagian “Keamanan Penyimpanan Lokal”-
Izin 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 Persembunyikan 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 kreditensi antar anggota tim
Penggunaan CI/CD
Bagian berjudul “Penggunaan CI/CD”Untuk lingkungan CI/CD, prefer variabel lingkungan atas kreditensi yang disimpan.
Eksport file .env yang sudah siap digunakan .env (direkomendasikan)
Bagian berjudul “Eksport file .env yang sudah siap digunakan (direkomendasikan)”Sebagai ganti dengan meng-encode setiap file kreditensi dengan tangan secara manual (lihat di bawah), build credentials manage menghasilkan file 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 kunci 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 Variabel Lingkungan Lengkap
Judul Bagian “Referensi Variabel Lingkungan Lengkap”CLI membaca variabel lingkungan berikut untuk kredit:
Kredensial iOS:
| Variabel | Deskripsi | Format | Diperlukan |
|---|---|---|---|
BUILD_CERTIFICATE_BASE64 | Sertifikat P12/PKCS12 untuk code penandatangan | 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 | Teks biasa | Opsional |
APPLE_KEY_ID | App Store Connect API ID Kunci | String (misalnya “ABC1234567”) | Lihat catatan¹ |
APPLE_ISSUER_ID | App Store Connect API ID Penerbit | String UUID | Lihat catatan¹ |
APPLE_KEY_CONTENT | Isi kunci App Store Connect API (.file p8 konten) | Base64 | Lihat catatan¹ |
APP_STORE_CONNECT_TEAM_ID | Tim Pengembang Apple ID | String (misalnya, “XXXXXXXXXX”) | Iya |
CAPGO_IOS_DISTRIBUTION | Sifat Distribusi: app_store atau ad_hoc | String | Tidak |
Kredensial Android:
| MVariabel | Pengenalan | Format | Diperlukan |
|---|---|---|---|
ANDROID_KEYSTORE_FILE | __CAPGO_KEEP_0__ untuk menandatangani APK/AAB | Base64 | Ya (rilis) |
KEYSTORE_KEY_ALIAS | __CAPGO_KEEP_1__ dalam __CAPGO_KEEP_0__ | String | Ya (rilis) |
KEYSTORE_KEY_PASSWORD | Kata sandi untuk __CAPGO_KEEP_1__ | Teks biasa | Ya* |
KEYSTORE_STORE_PASSWORD | Kata sandi untuk __CAPGO_KEEP_0__ | 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
Judul bagian “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.txtMengapa Variabel Lingkungan Lebih Aman
Bagian berjudul “Mengapa Variabel Lingkungan Lebih Aman”Metode ini lebih aman karena:
- Rahasia diatur oleh platform CI/CD Anda
- No file kunci autentikasi di runner
- Mudah mengatur rotasi dan kontrol akses
- Jejak audit untuk penggunaan rahasia
Pengaturan Rotasi Kunci
Bab berjudul “Pengaturan Rotasi Kunci”Rotasi kunci Anda secara teratur:
- iOS: Buat sertifikat baru dan API kunci setiap tahun
- Android: Ubah kata sandi keystore setiap tahun
- Setelah perubahan tim: Rotasi ketika anggota tim meninggalkan
Update simpan kreditensi:
# Re-run save command with new credentialsbunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...Pengaturan troubleshooting
Judul bagian “Pengaturan troubleshooting””Tidak ditemukan kreditensi”
Judul bagian “”Tidak ditemukan kreditensi””Jika build mengatakan tidak ditemukan kreditensi:
-
Periksa jika kreditensi disimpan:
Jendela terminal bunx @capgo/cli@latest build credentials list -
Simpan kreditensi jika hilang:
Jendela terminal bunx @capgo/cli@latest build credentials save --platform ios ... -
Periksa apakah file kredit ada:
Jendela terminal ls -la ~/.capgo-credentials/credentials.json # globalls -la .capgo-credentials.json # local (--local)
“Permission denied” when reading credentials
,,
chmod 600 ~/.capgo-credentials/credentials.json # globalchmod 600 .capgo-credentials.json # localPeriksa bahwa platform yang benar telah ditetapkan:
# 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 credentialsBersihkan dan simpan kembali kredit
Bab berjudul “Bersihkan dan simpan kembali kredit”Jika kredit tampak rusak:
# Clear all credentialsbunx @capgo/cli@latest build credentials clear
# Save againbunx @capgo/cli@latest build credentials save --platform ios ...Pindahkan dari Variabel Lingkungan
Bab berjudul “Pindahkan dari Variabel Lingkungan”Jika Anda saat ini menggunakan variabel lingkungan, Anda dapat memindahkan ke kredit yang disimpan:
-
Ekstrak variabel lingkungan Anda yang saat ini
Jendela terminal echo $BUILD_CERTIFICATE_BASE64 # Verify they exist -
Mengembalikan file base64 ke file asli (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_BASE64run:Jendela terminal bunx @capgo/cli@latest build credentials migrate --platform iosIni mengonversi profil legacy tunggal ke sebuah
CAPGO_IOS_PROVISIONING_MAPdan menghapusBUILD_PROVISION_PROFILE_BASE64danAPPLE_PROFILE_NAMEkunci. -
Uji bangunan
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
Lokasi FileKredensial disimpan dalam sebuah file JSON tunggal:
- Global (default):
~/.capgo-credentials/credentials.json— digunakan secara bersamaan di semua proyek Anda - Local (dengan
--local):.capgo-credentials.json— di direktori root proyek Anda — menggantikan file global untuk proyek tersebut
File tersebut dibuat secara otomatis pertama kali Anda menyimpan kredensial. Tambahkan .capgo-credentials.json ke proyek Anda .gitignore sehingga kredensial per-proyek tidak pernah dikomit.
Langkah-Langkah Selanjutnya
Judul Bagian “Langkah-Langkah Selanjutnya”- Mulai - Buat bangunan pertama Anda
- Bangunan iOS - Konfigurasi pengaturan bangunan spesifik iOS
- Bangunan Android - Konfigurasi pengaturan bangunan spesifik Android
- Pengaturan Masalah - Masalah umum dan solusi
Memerlukan Bantuan?
Judul Bagian “Memerlukan Bantuan?”- 📚 Petunjuk troubleshooting
- 💬 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 CI/CD untuk alur kerja produk di Capgo CI/CD, Capgo Build Nativ 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