Langsung ke konten

Mengelola Kredensial

Kelola kredensial build iOS dan Android Anda secara lokal untuk cloud build yang nyaman.

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.

Simpan kredensial build Anda secara lokal untuk penggunaan otomatis:

Terminal window
npx @capgo/cli build credentials save --platform <ios|android> [options]

Lihat kredensial yang tersimpan saat ini (password di-mask):

Terminal window
npx @capgo/cli build credentials list

Hapus kredensial yang tersimpan dari mesin lokal Anda:

Terminal window
# Hapus semua kredensial
npx @capgo/cli build credentials clear
# Hapus hanya kredensial iOS
npx @capgo/cli build credentials clear --platform ios
# Hapus hanya kredensial Android
npx @capgo/cli build credentials clear --platform android
Terminal window
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"
OpsiDeskripsiWajib
--certificate <path>Path ke file sertifikat .p12Ya (release)
--p12-password <password>Password untuk sertifikat .p12Ya (release)
--provisioning-profile <path>Path ke file .mobileprovisionYa (release)
--provisioning-profile-prod <path>Production provisioning profile (opsional)Tidak
--apple-key <path>Path ke API .p8 key App Store ConnectYa (submission)
--apple-key-id <id>App Store Connect API Key IDYa (submission)
--apple-issuer-id <id>App Store Connect API Issuer ID (UUID)Ya (submission)
--apple-team-id <id>App Store Connect Team IDYa (submission)
--apple-id <email>Email Apple ID (auth alternatif)Tidak
--apple-app-password <password>App-specific password (auth alternatif)Tidak

Saat Anda menyimpan kredensial iOS, CLI:

  1. Membaca file sertifikat dan provisioning profile
  2. Mengkonversi ke encoding base64
  3. Menyimpan kredensial ke folder .capgo-credentials
  4. 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"
}
}
Terminal window
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.json
OpsiDeskripsiWajib
--keystore <path>Path ke file .keystore atau .jksYa (release)
--keystore-alias <alias>Key alias di keystoreYa (release)
--keystore-key-password <password>Password untuk key aliasYa (release)
--keystore-store-password <password>Password untuk keystoreYa (release)
--play-config <path>Path ke JSON service account Play StoreYa (submission)

Saat Anda menyimpan kredensial Android, CLI:

  1. Membaca file keystore dan service account JSON
  2. Mengkonversi ke encoding base64
  3. Menyimpan kredensial ke folder .capgo-credentials
  4. 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": "..."
}
}
}

Setelah Anda menyimpan kredensial, mereka otomatis digunakan saat Anda build:

Terminal window
# Kredensial otomatis dimuat dari folder .capgo-credentials
npx @capgo/cli build com.example.app --platform ios

Anda juga dapat override kredensial yang tersimpan menggunakan environment variables:

Terminal window
# Environment variables memiliki prioritas lebih tinggi dari kredensial yang tersimpan
BUILD_CERTIFICATE_BASE64="..." \
P12_PASSWORD="different-password" \
npx @capgo/cli build com.example.app --platform ios

Urutan prioritas:

  1. Environment variables (prioritas tertinggi)
  2. Kredensial yang tersimpan di folder .capgo-credentials
  3. Tidak ada kredensial (prioritas terendah)

Daftar kredensial apa yang telah Anda simpan:

Terminal window
npx @capgo/cli build credentials list

Contoh 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).
  1. Permission File

    Terminal window
    # Pastikan folder credentials tidak dapat dibaca oleh orang lain
    chmod 700 .capgo-credentials
    chmod 600 .capgo-credentials/*
  2. Jangan Commit Kredensial

    Terminal window
    # Tambahkan ke .gitignore
    echo ".capgo-credentials/" >> .gitignore
  3. Pisahkan Kredensial

    • Gunakan kredensial berbeda untuk development lokal vs CI/CD
    • Rotasi kredensial secara teratur
    • Jangan bagikan kredensial antar anggota tim

Untuk lingkungan CI/CD, lebih baik gunakan environment variables daripada kredensial yang tersimpan:

# GitHub Actions
env:
BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_CERTIFICATE }}
P12_PASSWORD: ${{ secrets.P12_PASSWORD }}
# ... secrets lainnya

Ini 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 Anda secara teratur:

  1. iOS: Generate sertifikat dan API key baru setiap tahun
  2. Android: Ubah password keystore setiap tahun
  3. Setelah perubahan tim: Rotasi saat anggota tim keluar

Update kredensial yang tersimpan:

Terminal window
# Jalankan ulang command save dengan kredensial baru
npx @capgo/cli build credentials save --platform ios --certificate ./new-cert.p12 ...

Jika build mengatakan tidak ada kredensial yang ditemukan:

  1. Periksa apakah kredensial tersimpan:

    Terminal window
    npx @capgo/cli build credentials list
  2. Simpan kredensial jika hilang:

    Terminal window
    npx @capgo/cli build credentials save --platform ios ...
  3. 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:

Terminal window
chmod 700 .capgo-credentials
chmod 600 .capgo-credentials/*

Periksa bahwa platform yang benar sudah dispesifikasikan:

Terminal window
# Pastikan --platform cocok dengan kredensial yang tersimpan
npx @capgo/cli build com.example.app --platform ios # Menggunakan kredensial ios
npx @capgo/cli build com.example.app --platform android # Menggunakan kredensial android

Jika kredensial tampak rusak:

Terminal window
# Hapus semua kredensial
npx @capgo/cli build credentials clear
# Simpan lagi
npx @capgo/cli build credentials save --platform ios ...

Jika Anda saat ini menggunakan environment variables, Anda dapat migrasi ke kredensial yang tersimpan:

  1. Ekstrak environment variables Anda saat ini

    Terminal window
    echo $BUILD_CERTIFICATE_BASE64 # Verifikasi mereka ada
  2. Decode file base64 kembali ke file asli (jika diperlukan)

    Terminal window
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. 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"
  4. Test build

    Terminal window
    npx @capgo/cli build com.example.app --platform ios
  5. Hapus environment variables (opsional)

    Terminal window
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

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.