Pengelolaan Kredensial
Copy sebuah prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Kelola kredensial pembangunan iOS dan Android Anda secara lokal untuk memudahkan pembangunan cloud.
Ringkasan
Judul Bagian ‘Ringkasan’Capgo CLI menyimpan kredit pembangunan Anda di mesin Anda – tidak pernah di server Capgo. Dengan default mereka hidup di satu file global, ~/.capgo-credentials/credentials.jsonyang dibagi bersama semua proyek Anda. --local Pilih 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 Interaktif
Bagian berjudul “Kelola Kredensial Interaktif”Cara termudah untuk bekerja dengan kredensial yang disimpan Anda adalah dengan menggunakan manajer interaktif. Manajer ini membuka TUI (yang sama seperti yang digunakan oleh build init gunakan .env ) di mana Anda dapat melihat apa yang disimpan, melihat apa yang dikonfigurasi per aplikasi dan platform, mengexport file yang siap digunakan dalam CI/CD, atau menghapus kredensial platform:
bunx @capgo/cli@latest build credentials manage| Pilihan | Deskripsi |
|---|---|
--appId <appId> | Aplikasi untuk mengelola (mengajak Anda memilih jika dihilangkan) |
--platform <ios|android> | Platform untuk mengelola (mengajak jika dihilangkan) |
--local | Gunakan file per-proyek .capgo-credentials.json bukan file global |
Menggunakan perintah tunggal, skrip? Gunakan perintah individu di bawah.
Simpan Kredensial
Judul bagian “Simpan Kredensial”Simpan kredensial pembangunan Anda secara lokal untuk penggunaan otomatis:
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]Perbarui Kredensial
Judul bagian “Perbarui Kredensial”Tanpa harus menyediakan kembali semua informasi, Anda dapat memperbarui kredit yang sudah ada:
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]The update perintah menggunakan penyatuan tambahan untuk profil provisioning — profil baru disatukan dengan profil yang sudah ada. Untuk mengganti seluruh peta profil provisioning, 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 pembaruan menerima opsi yang sama seperti save tetapi semua opsi tersebut opsional — hanya bidang yang Anda berikan saja yang diperbarui.
Daftar Kredensial
Judul Bagian “Daftar Kredensial”Lihat kreditensi 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 kreditensi 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 lalu ke format multi-target baru:
bunx @capgo/cli@latest build credentials migrate --platform iosPerintah migrasi mendeteksi BUILD_PROVISION_PROFILE_BASE64 kredensial lama, mengubahnya ke CAPGO_IOS_PROVISIONING_MAP, dan menghapus kunci legasi. Lihat Migrasi dari Profil Tunggal untuk detail.
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> | Jalur ke file sertifikat .p12 | Ya (rilis) |
--p12-password <password> | Kata sandi untuk sertifikat .p12 | Ya (rilis) |
--ios-provisioning-profile <mapping> | Peta profil pengaturan (,). Ulangi untuk aplikasi multi-target. Jika hanya satu profil dan tidak ada prefix bundleId, __CAPGO_KEEP_0__ secara otomatis menginfers dari profil.bundleId=path). Repeatable for multi-target apps. If only one profile and no bundleId prefix, CLI auto-infers from the profile. | Jalur ke __CAPGO_KEEP_0__ .p8 Key App Store Connect |
--apple-key <path> | Path to App Store Connect API .p8 key | ID __CAPGO_KEEP_0__ Key App Store Connect |
--apple-key-id <id> | App Store Connect API Key ID | __CAPGO_KEEP_0__ |
--apple-issuer-id <id> | App Store Connect API ID Pengembang (UUID) | Lihat catatan¹ |
--apple-team-id <id> | App Store Connect ID Tim | Ya |
--ios-distribution <mode> | Mode distribusi: app_store (default) atau ad_hoc | Tidak |
--output-upload | Aktifkan tautan download sementara Capgo untuk artefak build | Tidak (default: false) |
--output-retention <seconds> | Berapa lama untuk menjaga keluaran build (misalnya 3600s) | Tidak (default: 3600s) |
--skip-build-number-bump | Lewati peningkatan otomatis nomor build | Tidak |
Bagaimana Data Disimpan
Bagian berjudul “Bagaimana Data Disimpan”Ketika Anda menyimpan kunci 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 hanya)
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
Bab yang berjudul “Menyimpan Kredensial Android”Contoh Lengkap
Bab yang berjudul “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
Bagian berjudul “Opsi Android”| Opsi | Deskripsi | Diperlukan |
|---|---|---|
--keystore <path> | Alamat ke file .keystore atau .jks | Ya (rilis) |
--keystore-alias <alias> | Alias kunci di dalam 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 keystore dan file JSON akun layanan
- Mengubahnya ke encoding base64
- Menyimpannya ke
~/.capgo-credentials/credentials.json(atau.capgo-credentials.jsondengan--local) - Mengarsipkan 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
Judul bagian “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 yang disimpan (
~/.capgo-credentials/credentials.jsonatau 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 Mengkomitkan 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.
-
Pisahkan Kredensial
- Gunakan kreditensi yang berbeda untuk pengembangan lokal vs CI/CD
- Rotasi kreditensi 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 pakai .env (direkomendasikan)
Bagian berjudul “Eksport file .env yang sudah siap pakai (direkomendasikan)”Sebagai gantinya dari base64-encoding setiap file kreditensi secara manual (lihat di bawah), biarkan build credentials manage generate 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 kunci rahasia yang disimpan sebagai variabel lingkungan — setiap baris adalah satu rahasia untuk menambahkan ke penyedia CI/CD Anda. Kedua platform digabungkan secara default; tambahkan --platform ios atau --platform android untuk membatasi skopnya ke satu.
Referensi Variabel Lingkungan Lengkap
Bab berjudul “Referensi Variabel Lingkungan Lengkap”CLI membaca variabel lingkungan berikut untuk kredit:
Kredensial iOS:
| Variabel | Deskripsi | Format | Diperlukan |
|---|---|---|---|
BUILD_CERTIFICATE_BASE64 | Sertifikat P12/PKCS12 untuk tanda tangan code | Base64 | Ya (rilis) |
CAPGO_IOS_PROVISIONING_MAP | Peta JSON ID aplikasi ke data profil pengaturan | String JSON | Ya (rilis) |
P12_PASSWORD | Kata sandi untuk sertifikat P12 | Teks biasa | Opsional |
APPLE_KEY_ID | Kunci ID App Store Connect API | String (misalnya, 'ABC1234567') | Lihat catatan¹ |
APPLE_ISSUER_ID | Kunci ID Penggagas App Store Connect API | 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 | Mode 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 Capgo
Judul bagian “GitHub Contoh Aksi Capgo”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
Judul Bagian “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
Judul Bagian “Mengapa Variabel Lingkungan Lebih Aman”Metode ini lebih aman karena:
- Rahasia diatur oleh platform CI/CD Anda
- Tidak ada file kredit di runner
- Penggantian dan kontrol akses yang mudah
- Jejak audit untuk penggunaan rahasia
Penggantian Kredit
Judul bagian “Penggantian Kredit”Rotasi kredit 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 kreditensi yang disimpan:
# Re-run save command with new credentialsbunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...Pengaturan masalah
Bab berjudul “Pengaturan masalah””Tidak ditemukan kreditensi”
Bab berjudul “”Tidak ditemukan kreditensi””Jika bangun menyatakan tidak ditemukan kreditensi:
-
Cek apakah kreditensi disimpan:
Jendela terminal bunx @capgo/cli@latest build credentials list -
Simpan kreditif jika hilang:
Jendela terminal bunx @capgo/cli@latest build credentials save --platform ios ... -
Periksa apakah file kreditif ada:
Jendela terminal ls -la ~/.capgo-credentials/credentials.json # globalls -la .capgo-credentials.json # local (--local)
“Ditolak Izin” ketika membaca kreditif
Bagian berjudul ““Ditolak Izin” ketika membaca kreditif”Perbaiki hak akses file:
chmod 600 ~/.capgo-credentials/credentials.json # globalchmod 600 .capgo-credentials.json # localKredensial tidak digunakan
Judul Bagian “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 credentialsBersihkan dan simpan kembali kredensial
Judul Bagian “Bersihkan dan simpan kembali 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 Bagian “Migrasi dari Variabel Lingkungan”Jika Anda saat ini menggunakan variabel lingkungan, Anda dapat memigrasikan ke kredit yang disimpan:
-
Ekstrak variabel lingkungan Anda saat ini
Jendela terminal echo $BUILD_CERTIFICATE_BASE64 # Verify they exist -
Dekode file base64 kembali 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_BASE64), jalankan:Jendela Terminal bunx @capgo/cli@latest build credentials migrate --platform iosIni mengonversi profil legacy tunggal menjadi
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
Judul bagian “Lokasi File”Kredensial disimpan dalam file JSON tunggal:
- Global (default):
~/.capgo-credentials/credentials.json— bersamaan dengan semua proyek Anda - Local (dengan
--local):.capgo-credentials.jsondi root proyek Anda — menggantikan file global untuk proyek tersebut
File ini dibuat secara otomatis pertama kali Anda menyimpan kredensial. Tambahkan .capgo-credentials.json ke ponsel Anda .gitignore sehingga kredit per-proyek tidak pernah dikomit.
Langkah-Langkah Selanjutnya
Judul Bagian “Langkah-Langkah Selanjutnya”- Membuat Mulai - Buat bangunan pertama Anda
- Buat Bangunan iOS - Konfigurasi pembangunan spesifik iOS
- Buat Bangunan Android - Konfigurasi pembangunan spesifik Android
- Pengaturan Permasalahan - Masalah umum dan solusi
Butuh Bantuan?
Judul Bagian “Butuh Bantuan?”- 📚 Petunjuk Mengatasi Masalah
- 💬 Komunitas Discord
- 📧 Email: support@capgo.app
Teruskan dari Mengelola Kredensial
Judul Bagian “Teruskan dari Mengelola Kredensial”Jika Anda menggunakan Mengelola Kredensial untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo CI/CD untuk alur kerja produk di Capgo 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.