Menangani Kredensial
Copy prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Manajemen kredit pembangunan iOS dan Android Anda secara lokal untuk memudahkan pembangunan cloud.
Ringkasan
Bab berjudul “Ringkasan”Capgo CLI menyimpan kredit pembangunan Anda di mesin Anda — tidak pernah di server Capgo . Dengan default mereka hidup di satu file global, file, ~/.capgo-credentials/credentials.jsonDapat digunakan secara bersamaan di semua proyek Anda. --local per-proyek per-proyek di .capgo-credentials.json sebaliknya. Ketika Anda menjalankan build, kredit yang disimpan digunakan secara otomatis dan dikirimkan dengan aman ke Capgo, kemudian dihapus setelah build selesai.
Perintah
Bagian berjudul “Perintah”Manajemen Kredensial Interaktif
Bagian berjudul “Manajemen Kredensial Interaktif”Cara termudah untuk bekerja dengan kredensial yang disimpan adalah dengan menggunakan manajer interaktif. Manajer ini membuka TUI (yang sama seperti) build init Penggunaan) di mana Anda dapat melihat apa yang disimpan, melihat apa yang dikonfigurasi per aplikasi dan platform, dan mengexport dalam format CI/CD-ready .env file, atau hapus kredit 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 ditinggalkan) |
--local | Gunakan file per-proyek .capgo-credentials.json Sebaliknya, gunakan file global |
Gunakan perintah skrip tunggal? Gunakan perintah-perintah individu di bawah ini.
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
Judul Bagian: “Perbarui Kredensial”Perbarui kredensial yang sudah ada tanpa harus menyediakan semuanya lagi:
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]The update penggunaan perintah Perintah ini menggunakan Untuk profil pengaturan — profil baru akan digabungkan dengan profil 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 menerima opsi yang sama seperti save tetapi semua itu opsional — hanya bidang yang Anda berikan saja yang diperbarui.
Daftar Kredensial
Bagian berjudul “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.appClear Credentials
Bagian Judul “Menghapus 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
Section titled “Migrate Credentials”Migrasikan format tunggal profil ke format multi-target baru:
bunx @capgo/cli@latest build credentials migrate --platform iosPerintah migrate mendeteksi versi lama BUILD_PROVISION_PROFILE_BASE64 Migrasi dari Profil Tunggal CAPGO_IOS_PROVISIONING_MAPuntuk informasi lebih lanjut. Menyimpan Kredensial iOS Migrasi Kredensial iOS
Menyimpan Kredensial iOS
Bagian berjudul “Menghemat Kredensial iOS”Contoh Lengkap
Bab berjudul “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"iOS Options
Bagian berjudul “Pilihan iOS”| Option | Deskripsi | Diperlukan |
|---|---|---|
--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 (bundleId=pathUlangi untuk aplikasi multi-target. Jika hanya satu profil dan tidak ada prefix bundleId, CLI secara otomatis menginfers dari profil. | Ya (rilis) |
--apple-key <path> | Jalur ke kunci App Store Connect API .p8 | Lihat catatan¹ |
--apple-key-id <id> | ID Kunci App Store Connect API | Lihat catatan¹ |
--apple-issuer-id <id> | App Store Connect API ID Penerbit (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 kunci API) | Lihat catatan² |
--apple-app-specific-password <password> | Perhatikan catatan²xxxx-xxxx-xxxx-xxxx) | Lihat catatan² |
--apple-app-id <id> | ID Aplikasi Toko Aplikasi Nomor (misalnya 1234567890) | Lihat catatan² |
--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 |
Apa yang Disimpan
Judul bagian “Apa yang Disimpan”Ketika Anda menyimpan kunci iOS, CLI:
- Membaca file sertifikat dan profil pengembangan
- Mengubahnya ke encoding base64
- Menyimpannya ke
~/.capgo-credentials/credentials.json(atau.capgo-credentials.jsondengan--local) - Mengarsipkan sandi dan ID sebagai teks biasa (hanya file lokal)
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
Bagian berjudul “Menghemat Kredensial Android”Contoh Lengkap
Bagian 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
Section titled “Android Options”| Option | Pilihan | Deskripsi |
|---|---|---|
--keystore <path> | Lokasi file .keystore atau .jks | Ya (rilis) |
--keystore-alias <alias> | Alias kunci di keystore | Yes (rilis) |
--keystore-key-password <password> | Kata sandi untuk alias kunci | Yes (rilis) |
--keystore-store-password <password> | Kata sandi untuk keystore | Yes (rilis) |
--play-config <path> | Jalur ke file JSON akun layanan Play Store | Yes (pengiriman) |
Apa yang Disimpan
Bab berjudul “Apa yang Disimpan”Saat Anda menyimpan kredit Android, CLI:
- Membaca file keystore dan JSON akun layanan
- Mengubahnya ke encoding base64
- Menyimpannya ke
~/.capgo-credentials/credentials.json(atau.capgo-credentials.jsoncontext--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 Akun yang Disimpan
Bab berjudul “Menggunakan Akun yang Disimpan”Setelah Anda menyimpan akun, 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 kredit 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)
- Kredit yang disimpan (prioritas kedua)
~/.capgo-credentials/credentials.jsonatau lokal.capgo-credentials.json) - Melihat Kredit yang Disimpan
Bagian berjudul “Melihat Kredit yang Disimpan”
Daftar kredit yang Anda simpan:Daftar kredit yang disimpan:
bunx @capgo/cli@latest build credentials listContoh hasil:
📋 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
Bab yang berjudul “Praktik Keamanan Terbaik”Keamanan Penyimpanan Lokal
Bab yang berjudul “Keamanan Penyimpanan Lokal”-
Izin Akses File
Tampilan 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 Mengkomitasi Kredensial
Tampilan jendela terminal # Ignore the per-project credentials file (used with --local)echo ".capgo-credentials.json" >> .gitignoreFile global berada 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
Bab berjudul “Penggunaan CI/CD”Untuk lingkungan CI/CD, prefer variabel lingkungan lebih dari kredensial yang disimpan.
Export siap digunakan .env (direktori)
Judul bagian “Export file .env yang siap digunakan (direktori)”Sebaliknya dari meng-encode ulang setiap file kredit dengan tangan secara manual (lihat di bawah), biarkan build credentials manage menghasilkan file untuk Anda:
bunx @capgo/cli@latest build credentials manage# pick your app → choose "Export to .env"Menulis file (izin .env.capgo.<appId>.<platform> file (izin akses) 0600) containing every saved credential as an environment variable — each line is one secret to add to your CI/CD provider. Both platforms are combined by default; add --platform ios or --platform android Untuk membatasi skopnya ke 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 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 | 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 | Kunci App Store Connect API (.file p8 konten) | 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
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
Judul Bagian “Mengatur Nilai Base64”Untuk mengubah 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
Bab berjudul “Mengapa Variabel Lingkungan Lebih Aman”Metode ini 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
Bab berjudul “Pengaturan Kredit”Rotasikan kredit 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
: Perbarui kreditensi yang disimpan:
# Re-run save command with new credentialsbunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...Troubleshooting
Bagian berjudul “Pengaturan Masalah”Tidak ditemukan kredit apa pun
Section titled ““No credentials found””Jika proses build mengatakan tidak ada kredensial yang ditemukan:
-
Cek apakah kreditensi disimpan:
Jendela terminal bunx @capgo/cli@latest build credentials list -
Cek apakah kreditensi disimpan jika hilang:
Jendela terminal bunx @capgo/cli@latest build credentials save --platform ios ... -
Cek apakah file kreditensi ada:
Jendela terminal ls -la ~/.capgo-credentials/credentials.json # globalls -la .capgo-credentials.json # local (--local)
“Ditolak akses” ketika membaca kreditensi
Bagian berjudul “Ditolak akses” ketika membaca kreditensiPerbaiki hak akses file:
chmod 600 ~/.capgo-credentials/credentials.json # globalchmod 600 .capgo-credentials.json # localKredensial tidak digunakan
Bab yang berjudul “Kredensial tidak digunakan”Pastikan 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
Bab yang berjudul “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
Section titled “Migration from Environment Variables”Jika Anda saat ini menggunakan variabel lingkungan, Anda dapat memigrasikan ke kredit yang disimpan:
-
Ekstrak variabel lingkungan Anda saat ini
Tampilan jendela terminal echo $BUILD_CERTIFICATE_BASE64 # Verify they exist -
Mengurai file base64 kembali ke file asli (jika perlu)
Tampilan 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_BASE64Jalankan:Jendela terminal bunx @capgo/cli@latest build credentials migrate --platform iosKonversi ini mengubah format lama satu-profil menjadi
CAPGO_IOS_PROVISIONING_MAPdan menghapus kunci lamaBUILD_PROVISION_PROFILE_BASE64danAPPLE_PROFILE_NAMEUji bangun -
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
Judul bagian “Lokasi File”Kredensial disimpan dalam sebuah file JSON tunggal:
- Global (default):
~/.capgo-credentials/credentials.json— berbagi di semua proyek Anda - Local (dengan)
--local):.capgo-credentials.jsondalam direktori root proyek Anda — menggantikan file global untuk proyek tersebut
File ini dibuat secara otomatis pertama kali Anda menyimpan kredit. Tambahkan .capgo-credentials.json ke dalam .gitignore sehingga kredit per-proyek tidak pernah dikomit.
Next Steps
Langkah Selanjutnya- Bagian berjudul “Langkah-Langkah Selanjutnya” Pembelajaran Dasar
- Build iOS -konfigurasi pembangunan iOS khusus
- - Konfigurasi pembangunan spesifik iOS - Konfigurasi pembangunan spesifik Android
- Troubleshooting Permasalahan dan solusi umum
Bantuan?
Bagian berjudul “Bantuan?”- 📚 Panduan troubleshooting
- 💬 Masyarakat Discord
- 📧 Email: Bantuan@capgo.app
Teruskan dari Mengelola Kredensial
Bagian berjudul “Teruskan dari Mengelola Kredensial”Jika Anda menggunakan Manajemen Kredensial untuk merencanakan otomatisasi CI/CD, hubungkannya dengan Capgo CI/CD untuk alur kerja produk di Capgo Otomatisasi CI/CD, Capgo Bangun Natively untuk alur kerja produk di Capgo Bangun Natively, Capgo Integrasi untuk alur kerja produk di Capgo Integrations, untuk alur kerja produk di __CAPGO_KEEP_0__ Integrasi, untuk detail implementasi di Integrasi CI/CD, dan GitHub Actions Integration Untuk detail implementasi di GitHub Aksi Integrasi.