Lompat ke konten

Mengelola Kredensial

Kelola kredit build Anda untuk iOS dan Android secara lokal untuk memudahkan build di awan.

Capgo CLI memungkinkan Anda menyimpan kredit build secara lokal di mesin Anda di .capgo-credentials folder. When you run a build, these credentials are automatically used and sent securely to Capgo’s build servers.

Simpan kredensial pembangunan Anda secara lokal untuk penggunaan otomatis:

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

Perbarui kredensial yang ada secara sebagian tanpa harus menyediakan semuanya lagi:

Jendela terminal
npx @capgo/cli build credentials update --platform <ios|android> [options]

The update perintah menggunakan metode penggabungan tambahan untuk profil provisioning — profil baru digabungkan dengan profil yang ada. Untuk mengganti seluruh peta profil provisioning, tambahkan Contoh — tambahkan profil ekstensi ke kredit yang ada: Jendela terminal --overwrite-ios-provisioning-map.

Salin ke clipboard

Perintah update menerima opsi yang sama seperti
npx @capgo/cli build credentials update \
--platform ios \
--ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"

Daftar Kredit save Bagian berjudul “Daftar Kredit”

Salin ke clipboard

The

Lihat kunci akun yang disimpan saat ini (kata sandi disembunyikan):

Jendela terminal
npx @capgo/cli build credentials list
# List credentials for a specific app
npx @capgo/cli build credentials list --appId com.example.app

Hapus kunci akun dari mesin lokal Anda:

Jendela terminal
# Clear all credentials
npx @capgo/cli build credentials clear
# Clear credentials for a specific app + platform
npx @capgo/cli build credentials clear --appId com.example.app --platform ios

Konversi format tunggal profil ke masa lalu ke format multi-target baru:

Jendela terminal
npx @capgo/cli build credentials migrate --platform ios

Perintah migrate mendeteksi kreditensi lama, mengubahnya ke BUILD_PROVISION_PROFILE_BASE64 , dan menghapus kunci legasi. Lihat CAPGO_IOS_PROVISIONING_MAPMigrasi dari Profil tunggal untuk informasi lebih lanjut. Menghemat Kreditensi iOS

Bagian berjudul “Menghemat Kreditensi iOS”

Catatan
Jendela Terminal
npx @capgo/cli 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"
PilihanDeskripsiDiperlukan
--certificate <path>Rute ke file sertifikat .p12Ya (rilis)
--p12-password <password>Kata sandi untuk sertifikat .p12Ya (rilis)
--ios-provisioning-profile <mapping>Petaan profil provisioning (,). Ulangi untuk aplikasi multi-target. Jika hanya satu profil dan tidak ada prefix bundleId, __CAPGO_KEEP_0__ secara otomatis diinfer dari profil.bundleId=path). Repeatable for multi-target apps. If only one profile and no bundleId prefix, CLI auto-infers from the profile.Lokasi kunci App Store Connect __CAPGO_KEEP_0__ .p8
--apple-key <path>Path to App Store Connect API .p8 keyID Kunci App Store Connect __CAPGO_KEEP_0__
--apple-key-id <id>App Store Connect API Key IDID Penerbit App Store Connect __CAPGO_KEEP_0__ (UUID)
--apple-issuer-id <id>App Store Connect API Issuer ID (UUID)Lihat catatan¹
--apple-team-id <id>ID Tim App Store ConnectYa
--ios-distribution <mode>Mode Distribusi: app_store (default) atau ad_hocTidak
--output-uploadAktifkan tautan download sementara Capgo untuk artefak buildTidak (default: false)
--output-retention <seconds>Berapa lama untuk menjaga output build (misalnya 3600s)Tidak (default: 3600s)
--skip-build-number-bumpLewati peningkatan otomatis nomor buildTidak

Ketika Anda menyimpan kreditur iOS, CLI:

  1. Membaca file sertifikat dan profil pengembang
  2. Mengubahnya ke encoding base64
  3. Menyimpan kreditur ke .capgo-credentials folder
  4. Mengimpan 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"
}
}
Jendela terminal
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

Opsi Android

Opsi Android
OpsiDeskripsiDiperlukan
--keystore <path>Jalur ke file .keystore atau .jksYa (rilis)
--keystore-alias <alias>Alias kunci di keystoreYa (rilis)
--keystore-key-password <password>Kata sandi untuk alias kunciYa (rilis)
--keystore-store-password <password>Kata sandi untuk keystoreYa (rilis)
--play-config <path>Jalur ke Akun JSON Layanan Toko PlayYa (pengiriman)

Ketika Anda menyimpan kredit Android, CLI:

  1. Membaca file keystore dan akun JSON layanan
  2. Mengubahnya ke encoding base64
  3. Menyimpan kredit ke .capgo-credentials folder
  4. 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": "..."
}
}
}

Setelah Anda menyimpan kredensial, maka mereka akan digunakan secara otomatis ketika Anda membangun:

Jendela Terminal
# Credentials automatically loaded from .capgo-credentials folder
npx @capgo/cli build com.example.app --platform ios

Anda juga dapat menggantikan kredensial yang disimpan menggunakan variabel lingkungan:

Jendela Terminal
# Environment variables take precedence over saved credentials
BUILD_CERTIFICATE_BASE64="..." \
P12_PASSWORD="different-password" \
npx @capgo/cli build com.example.app --platform ios

Urutan Prioritas:

  1. Variabel Lingkungan (prioritas tertinggi)
  2. Kredensial yang disimpan di .capgo-credentials folder
  3. Tidak ada kredit (prioritas terendah)

Daftar kredit yang Anda simpan:

Jendela terminal
npx @capgo/cli build credentials list

Contoh 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/
🔒 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.
  1. Izin Akses File

    Jendela Terminal
    # Ensure credentials folder is not readable by others
    chmod 700 .capgo-credentials
    chmod 600 .capgo-credentials/*
  2. Jangan Persembunyikan Kredensial

    Jendela Terminal
    # Add to .gitignore
    echo ".capgo-credentials/" >> .gitignore
  3. Jangan Gunakan Kredensial yang Sama

    • Gunakan Kredensial yang Berbeda untuk Pengembangan Lokal vs CI/CD
    • Rotasi Kredensial secara Teratur
    • Jangan Bagikan Kredensial dengan Anggota Tim

Untuk lingkungan CI/CD, prefer variabel lingkungan dibandingkan dengan kredit yang disimpan.

Referensi Variabel Lingkungan Lengkap

Judul “Referensi Variabel Lingkungan Lengkap”

The CLI membaca variabel lingkungan berikut untuk kredit:

Kredensial iOS:

VariabelDeskripsiFormatDiperlukan
BUILD_CERTIFICATE_BASE64Sertifikat P12/PKCS12 untuk tanda tangan codeBase64Ya (rilis)
CAPGO_IOS_PROVISIONING_MAPPeta JSON dari ID aplikasi ke data profil pengaturanString JSONYa (rilis)
P12_PASSWORDKata sandi untuk sertifikat P12Teks biasaOpsional
APPLE_KEY_IDKunci ID App Store Connect APIString (misalnya, &quot;ABC1234567&quot;)Lihat catatan¹
APPLE_ISSUER_IDID Penerbit App Store Connect API__CAPGO_KEEP_0__ string UUIDLihat catatan¹
APPLE_KEY_CONTENTKunci App Store Connect API (konten file .p8)Base64Lihat catatan¹
APP_STORE_CONNECT_TEAM_IDID Tim Pengembang AppleString (misalnya, “XXXXXXXXXX”)Ya
CAPGO_IOS_DISTRIBUTIONMode distribusi: app_store atau ad_hocStringTidak

Kredensial Android:

__CAPGO_KEEP_0__DeskripsiFormatDiperlukan
ANDROID_KEYSTORE_FILEFile keystore untuk menandatangani APK/AABBase64Ya (rilis)
KEYSTORE_KEY_ALIASAlias kunci di dalam keystoreStringYa (rilis)
KEYSTORE_KEY_PASSWORDKata sandi untuk alias kunciTeks biasaYa*
KEYSTORE_STORE_PASSWORDKata sandi untuk file keystoreTeks biasaYa*
PLAY_CONFIG_JSONJSON akun layanan Google PlayBase64Ya (pengiriman)

Jika hanya satu kata sandi yang disediakan, maka akan digunakan untuk kedua-duanya KEYSTORE_KEY_PASSWORD dan KEYSTORE_STORE_PASSWORD.

github/aliran kerja/build.yml
name: Cloud Build
on:
push:
branches: [main]
jobs:
build-ios:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npx @capgo/cli build 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: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npx @capgo/cli build 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 }}

Untuk mengubah file kunci Anda ke base64 untuk rahasia CI/CD:

Jendela terminal
# 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:
npx @capgo/cli build credentials save --platform ios \
--ios-provisioning-profile "com.example.app=./profile.mobileprovision" \
# ... other options
# Then copy CAPGO_IOS_PROVISIONING_MAP from .capgo-credentials 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 JSON
base64 -i play-store-service-account.json | tr -d '\n' > play_config_base64.txt

Cara ini lebih aman karena:

  • Rahasia-rahasia diatur oleh platform CI/CD Anda
  • Tidak ada file kredit di runner
  • Pengaturan rotasi dan kontrol akses yang mudah
  • Jejak audit untuk penggunaan rahasia

Rotasi kredit secara teratur:

  1. iOS: Buat sertifikat baru dan API kunci setiap tahun
  2. Android: Ubahlah kata sandi keystore setiap tahun
  3. Setelah perubahan tim: Rotasi ketika anggota tim meninggalkan

Perbarui kreditensi yang disimpan:

Jendela terminal
# Re-run save command with new credentials
npx @capgo/cli build credentials save --platform ios --certificate ./new-cert.p12 ...

Jika bangun proyek mengatakan tidak ada kreditensi ditemukan:

  1. Cek apakah kreditensi disimpan:

    Jendela terminal
    npx @capgo/cli build credentials list
  2. Simpan kreditensi jika hilang:

    Jendela terminal
    npx @capgo/cli build credentials save --platform ios ...
  3. Periksa apakah folder kreditensi ada:

    Jendela terminal
    ls -la .capgo-credentials/

Atur hak akses file:

Jendela terminal
chmod 700 .capgo-credentials
chmod 600 .capgo-credentials/*

Periksa bahwa platform yang benar telah ditentukan:

Jendela terminal
# Make sure --platform matches saved credentials
npx @capgo/cli build com.example.app --platform ios # Uses ios credentials
npx @capgo/cli build com.example.app --platform android # Uses android credentials

Jika kredensial tampak rusak:

Jendela terminal
# Clear all credentials
npx @capgo/cli build credentials clear
# Save again
npx @capgo/cli build credentials save --platform ios ...

Jika Anda saat ini menggunakan variabel lingkungan, Anda dapat beralih ke kredit yang disimpan:

  1. Ekstrak variabel lingkungan Anda saat ini

    Jendela terminal
    echo $BUILD_CERTIFICATE_BASE64 # Verify they exist
  2. Dekode file base64 kembali ke file asli (jika diperlukan)

    Jendela terminal
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. Simpan menggunakan CLI

    Jendela terminal
    npx @capgo/cli 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
    npx @capgo/cli build credentials migrate --platform ios

    Ini mengonversi profil lama ke satu CAPGO_IOS_PROVISIONING_MAP dan menghapus kunci lama BUILD_PROVISION_PROFILE_BASE64 dan APPLE_PROFILE_NAME kunci.

  4. Uji bangunan

    Jendela terminal
    npx @capgo/cli build com.example.app --platform ios
  5. Hapus variabel lingkungan (opsional)

    Jendela Terminal
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

Kredensial disimpan di .capgo-credentials folder:

  • macOS/Linux: .capgo-credentials/ (di direktori root proyek atau direktori utama kamu)
  • Windows: .capgo-credentials\ (di direktori root proyek atau direktori utama kamu)

Folder tersebut akan dibuat secara otomatis ketika kamu menyimpan kredensial untuk pertama kali.