Mengelola Kredensial
Kelola kredensial build iOS dan Android Anda secara lokal untuk cloud build yang nyaman.
Gambaran Umum
Section titled “Gambaran Umum”Capgo CLI memungkinkan Anda menyimpan kredensial build secara lokal di mesin Anda dalam folder .capgo-credentials. Saat Anda menjalankan build, kredensial ini otomatis digunakan dan dikirim dengan aman ke server build Capgo.
Commands
Section titled “Commands”Simpan Kredensial
Section titled “Simpan Kredensial”Simpan kredensial build Anda secara lokal untuk penggunaan otomatis:
npx @capgo/cli build credentials save --platform <ios|android> [options]Daftar Kredensial
Section titled “Daftar Kredensial”Lihat kredensial yang tersimpan saat ini (password di-mask):
npx @capgo/cli build credentials listHapus Kredensial
Section titled “Hapus Kredensial”Hapus kredensial yang tersimpan dari mesin lokal Anda:
# Hapus semua kredensialnpx @capgo/cli build credentials clear
# Hapus hanya kredensial iOSnpx @capgo/cli build credentials clear --platform ios
# Hapus hanya kredensial Androidnpx @capgo/cli build credentials clear --platform androidMenyimpan Kredensial iOS
Section titled “Menyimpan Kredensial iOS”Contoh Lengkap
Section titled “Contoh Lengkap”npx @capgo/cli build credentials save \ --platform ios \ --certificate ./cert.p12 \ --p12-password "YourP12Password" \ --provisioning-profile ./profile.mobileprovision \ --apple-key ./AuthKey_ABC1234567.p8 \ --apple-key-id "ABC1234567" \ --apple-issuer-id "00000000-0000-0000-0000-000000000000" \ --apple-team-id "TEAM123456"Opsi iOS
Section titled “Opsi iOS”| Opsi | Deskripsi | Wajib |
|---|---|---|
--certificate <path> | Path ke file sertifikat .p12 | Ya (release) |
--p12-password <password> | Password untuk sertifikat .p12 | Ya (release) |
--provisioning-profile <path> | Path ke file .mobileprovision | Ya (release) |
--provisioning-profile-prod <path> | Production provisioning profile (opsional) | Tidak |
--apple-key <path> | Path ke API .p8 key App Store Connect | Ya (submission) |
--apple-key-id <id> | App Store Connect API Key ID | Ya (submission) |
--apple-issuer-id <id> | App Store Connect API Issuer ID (UUID) | Ya (submission) |
--apple-team-id <id> | App Store Connect Team ID | Ya (submission) |
--apple-id <email> | Email Apple ID (auth alternatif) | Tidak |
--apple-app-password <password> | App-specific password (auth alternatif) | Tidak |
Apa yang Disimpan
Section titled “Apa yang Disimpan”Saat Anda menyimpan kredensial iOS, CLI:
- Membaca file sertifikat dan provisioning profile
- Mengkonversi ke encoding base64
- Menyimpan kredensial ke folder
.capgo-credentials - Menyimpan password dan ID sebagai plain text (file lokal saja)
Struktur file yang disimpan:
{ "ios": { "BUILD_CERTIFICATE_BASE64": "...", "BUILD_PROVISION_PROFILE_BASE64": "...", "APPLE_KEY_CONTENT": "...", "P12_PASSWORD": "...", "APPLE_KEY_ID": "ABC1234567", "APPLE_ISSUER_ID": "...", "APP_STORE_CONNECT_TEAM_ID": "TEAM123456" }}Menyimpan Kredensial Android
Section titled “Menyimpan Kredensial Android”Contoh Lengkap
Section titled “Contoh Lengkap”npx @capgo/cli 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 “Opsi Android”| Opsi | Deskripsi | Wajib |
|---|---|---|
--keystore <path> | Path ke file .keystore atau .jks | Ya (release) |
--keystore-alias <alias> | Key alias di keystore | Ya (release) |
--keystore-key-password <password> | Password untuk key alias | Ya (release) |
--keystore-store-password <password> | Password untuk keystore | Ya (release) |
--play-config <path> | Path ke JSON service account Play Store | Ya (submission) |
Apa yang Disimpan
Section titled “Apa yang Disimpan”Saat Anda menyimpan kredensial Android, CLI:
- Membaca file keystore dan service account JSON
- Mengkonversi ke encoding base64
- Menyimpan kredensial ke folder
.capgo-credentials - Menyimpan password dan alias sebagai plain text (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 Tersimpan
Section titled “Menggunakan Kredensial yang Tersimpan”Setelah Anda menyimpan kredensial, mereka otomatis digunakan saat Anda build:
# Kredensial otomatis dimuat dari folder .capgo-credentialsnpx @capgo/cli build com.example.app --platform iosAnda juga dapat override kredensial yang tersimpan menggunakan environment variables:
# Environment variables memiliki prioritas lebih tinggi dari kredensial yang tersimpanBUILD_CERTIFICATE_BASE64="..." \P12_PASSWORD="different-password" \npx @capgo/cli build com.example.app --platform iosUrutan prioritas:
- Environment variables (prioritas tertinggi)
- Kredensial yang tersimpan di folder
.capgo-credentials - Tidak ada kredensial (prioritas terendah)
Melihat Kredensial yang Tersimpan
Section titled “Melihat Kredensial yang Tersimpan”Daftar kredensial apa yang telah Anda simpan:
npx @capgo/cli build credentials listContoh output:
📋 Saved Build Credentials:
iOS Credentials: ✓ Certificate (base64) ✓ Provisioning Profile (base64) ✓ 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/
🔒 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 (max 24 hours).Best Practices Keamanan
Section titled “Best Practices Keamanan”Keamanan Penyimpanan Lokal
Section titled “Keamanan Penyimpanan Lokal”-
Permission File
Terminal window # Pastikan folder credentials tidak dapat dibaca oleh orang lainchmod 700 .capgo-credentialschmod 600 .capgo-credentials/* -
Jangan Commit Kredensial
Terminal window # Tambahkan ke .gitignoreecho ".capgo-credentials/" >> .gitignore -
Pisahkan Kredensial
- Gunakan kredensial berbeda untuk development lokal vs CI/CD
- Rotasi kredensial secara teratur
- Jangan bagikan kredensial antar anggota tim
Penggunaan CI/CD
Section titled “Penggunaan CI/CD”Untuk lingkungan CI/CD, lebih baik gunakan environment variables daripada kredensial yang tersimpan:
# GitHub Actionsenv: BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_CERTIFICATE }} P12_PASSWORD: ${{ secrets.P12_PASSWORD }} # ... secrets lainnyaIni lebih aman karena:
- Secrets dikelola oleh platform CI/CD Anda
- Tidak ada file kredensial di runners
- Rotasi mudah dan kontrol akses
- Audit trails untuk penggunaan secret
Rotasi Kredensial
Section titled “Rotasi Kredensial”Rotasi kredensial Anda secara teratur:
- iOS: Generate sertifikat dan API key baru setiap tahun
- Android: Ubah password keystore setiap tahun
- Setelah perubahan tim: Rotasi saat anggota tim keluar
Update kredensial yang tersimpan:
# Jalankan ulang command save dengan kredensial barunpx @capgo/cli build credentials save --platform ios --certificate ./new-cert.p12 ...Troubleshooting
Section titled “Troubleshooting””No credentials found”
Section titled “”No credentials found””Jika build mengatakan tidak ada kredensial yang ditemukan:
-
Periksa apakah kredensial tersimpan:
Terminal window npx @capgo/cli build credentials list -
Simpan kredensial jika hilang:
Terminal window npx @capgo/cli build credentials save --platform ios ... -
Verifikasi folder credentials ada:
Terminal window ls -la .capgo-credentials/
“Permission denied” saat membaca kredensial
Section titled ““Permission denied” saat membaca kredensial”Perbaiki permission file:
chmod 700 .capgo-credentialschmod 600 .capgo-credentials/*Kredensial tidak digunakan
Section titled “Kredensial tidak digunakan”Periksa bahwa platform yang benar sudah dispesifikasikan:
# Pastikan --platform cocok dengan kredensial yang tersimpannpx @capgo/cli build com.example.app --platform ios # Menggunakan kredensial iosnpx @capgo/cli build com.example.app --platform android # Menggunakan kredensial androidHapus dan simpan ulang kredensial
Section titled “Hapus dan simpan ulang kredensial”Jika kredensial tampak rusak:
# Hapus semua kredensialnpx @capgo/cli build credentials clear
# Simpan laginpx @capgo/cli build credentials save --platform ios ...Migrasi dari Environment Variables
Section titled “Migrasi dari Environment Variables”Jika Anda saat ini menggunakan environment variables, Anda dapat migrasi ke kredensial yang tersimpan:
-
Ekstrak environment variables Anda saat ini
Terminal window echo $BUILD_CERTIFICATE_BASE64 # Verifikasi mereka ada -
Decode file base64 kembali ke file asli (jika diperlukan)
Terminal window echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision -
Simpan menggunakan CLI
Terminal window npx @capgo/cli build credentials save \--platform ios \--certificate ./cert.p12 \--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" -
Test build
Terminal window npx @capgo/cli build com.example.app --platform ios -
Hapus environment variables (opsional)
Terminal window unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64
Lokasi File
Section titled “Lokasi File”Kredensial disimpan di folder .capgo-credentials:
- macOS/Linux:
.capgo-credentials/(di root proyek atau home directory Anda) - Windows:
.capgo-credentials\(di root proyek atau home directory Anda)
Folder otomatis dibuat saat Anda menyimpan kredensial untuk pertama kalinya.
Langkah Selanjutnya
Section titled “Langkah Selanjutnya”- Getting Started - Buat build pertama Anda
- Build iOS - Konfigurasi build spesifik iOS
- Build Android - Konfigurasi build spesifik Android
- Troubleshooting - Masalah umum dan solusi
Butuh Bantuan?
Section titled “Butuh Bantuan?”- 📚 Panduan troubleshooting
- 💬 Komunitas Discord
- 📧 Email: support@capgo.app