Gestione credenziali
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Gestisci localmente le credenziali di build per iOS e Android per build cloud più comode.
Panoramica
Sezione intitolata “Panoramica”Capgo CLI memorizza le tue credenziali di build sul tuo computer — mai sui server di Capgo. Di default risiedono in un unico file globale , ~/.capgo-credentials/credentials.jsoncondiviso tra tutti i tuoi progetti. Passa --local per mantenerle per progetto nella .capgo-credentials.json invece. Quando esegui una build, le credenziali salvate vengono utilizzate automaticamente e inviate in modo sicuro a Capgo, poi eliminate al termine della build.
Gestisci le credenziali in modo interattivo
Sezione intitolata “Gestisci le credenziali in modo interattivo”Il modo più rapido per gestire le tue credenziali salvate è il manager interattivo. Apre una TUI (la stessa che build init utilizzi) dove puoi sfogliare i dati salvati, vedere la configurazione per ogni app e piattaforma, esportare un file .env file, oppure elimina le credenziali di una piattaforma:
bunx @capgo/cli@latest build credentials manage| Opzione | Descrizione |
|---|---|
--appId <appId> | App da gestire (se omessa, ti chiede di sceglierla) |
--platform <ios|android> | Piattaforma da gestire (richiesta se omessa) |
--local | Usa quella per progetto .capgo-credentials.json al posto del file globale |
Preferisci comandi one-shot e scriptabili? Usa i singoli comandi qui sotto.
Salva credenziali
Sezione intitolata “Salva credenziali”Salva le credenziali di build in locale per un uso automatico:
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]Aggiorna credenziali
Sezione intitolata “Aggiorna credenziali”Aggiorna parzialmente le credenziali esistenti senza reinserirle tutte:
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]Il update comando utilizza un merge additivo per i profili di provisioning: i nuovi profili vengono uniti a quelli esistenti. Per sostituire invece l'intera mappa di provisioning, aggiungi --overwrite-ios-provisioning-map.
Esempio — aggiungi un profilo estensione alle credenziali esistenti:
bunx @capgo/cli@latest build credentials update \ --platform ios \ --ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"Il comando update accetta le stesse opzioni di save ma sono tutte opzionali: vengono aggiornati solo i campi forniti.
Elenca credenziali
Sezione intitolata “Elenco credenziali”Visualizza le credenziali attualmente salvate (le password sono oscurate):
bunx @capgo/cli@latest build credentials list
# List credentials for a specific appbunx @capgo/cli@latest build credentials list --appId com.example.appCancella credenziali
Sezione intitolata “Cancella credenziali”Rimuovi le credenziali salvate dal tuo computer locale:
# 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 iosMigra credenziali
Sezione intitolata “Migra credenziali”Converti il formato legacy a profilo singolo nel nuovo formato multi-target:
bunx @capgo/cli@latest build credentials migrate --platform iosIl comando migrate rileva le vecchie BUILD_PROVISION_PROFILE_BASE64 credenziali, le converte in CAPGO_IOS_PROVISIONING_MAP, e rimuove le chiavi legacy. Vedi Migrazione da Single Profile per i dettagli.
Salvataggio credenziali iOS
Sezione intitolata “Salvataggio delle credenziali iOS”Esempio completo
Sezione intitolata “Esempio completo”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"Opzioni iOS
Sezione intitolata “Opzioni iOS”| Opzione | Descrizione | Obbligatorio |
|---|---|---|
--certificate <path> | Percorso del file di certificato .p12 | Sì (release) |
--p12-password <password> | Password del certificato .p12 | Sì (release) |
--ios-provisioning-profile <mapping> | Mappatura dei provisioning profile (bundleId=path). Ripetibile per app multi-target. Se c'è un solo provisioning profile e nessun prefisso bundleId, CLI lo deduce automaticamente dal profilo. | Sì (release) |
--apple-key <path> | Percorso della chiave .p8 di App Store Connect API | Vedi nota¹ |
--apple-key-id <id> | Key ID API di App Store Connect | Vedi nota¹ |
--apple-issuer-id <id> | Issuer ID (UUID) di App Store Connect API | Vedi nota¹ |
--apple-team-id <id> | Team ID di App Store Connect | Sì |
--apple-id <email> | Email Apple ID per l'upload della password specifica per l'app (alternativa alla chiave API) | Vedi nota² |
--apple-app-specific-password <password> | Password specifica per l'app (xxxx-xxxx-xxxx-xxxx) | Vedi nota² |
--apple-app-id <id> | ID numerico dell'app su App Store Connect (es. 1234567890) | Vedi nota² |
--ios-distribution <mode> | Modalità di distribuzione: app_store (default) o ad_hoc | No |
--output-upload | Abilita un link di download Capgo a tempo limitato per l'artefatto della build | No (default: false) |
--output-retention <seconds> | Per quanto tempo conservare gli output di build (es. 3600s) | No (default: 3600s) |
--skip-build-number-bump | Salta l'incremento automatico del numero di build | No |
Cosa viene salvato
Sezione “Cosa viene salvato”Quando salvi le credenziali iOS, CLI:
- Legge i file del certificato e del provisioning profile
- Li converte in codifica base64
- Li salva in
~/.capgo-credentials/credentials.json(o.capgo-credentials.jsoncon--local) - Salva password e ID in chiaro (solo file locali)
Struttura del file salvato:
{ "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" }}Salvataggio credenziali Android
Sezione intitolata “Salvataggio delle credenziali Android”Esempio completo
Sezione intitolata “Esempio completo”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.jsonOpzioni Android
Sezione intitolata “Opzioni Android”| Opzione | Descrizione | Obbligatorio |
|---|---|---|
--keystore <path> | Percorso del file .keystore o .jks | Sì (release) |
--keystore-alias <alias> | Alias della chiave nel keystore | Sì (release) |
--keystore-key-password <password> | Password per l'alias della chiave | Sì (release) |
--keystore-store-password <password> | Password del keystore | Sì (release) |
--play-config <path> | Percorso del JSON dell'account di servizio Play Store | Yes (submission) |
Cosa viene salvato
Sezione “Cosa viene salvato”Quando salvi le credenziali Android, CLI:
- Legge i file keystore e JSON dell'account di servizio
- Li converte in codifica base64
- Li salva in
~/.capgo-credentials/credentials.json(o.capgo-credentials.jsoncon--local) - Salva password e alias in testo semplice (solo file locali)
Struttura del file salvato:
{ "android": { "ANDROID_KEYSTORE_FILE": "...", "PLAY_CONFIG_JSON": "...", "KEYSTORE_KEY_ALIAS": "my-key-alias", "KEYSTORE_KEY_PASSWORD": "...", "KEYSTORE_STORE_PASSWORD": "..." }}Utilizzo delle credenziali salvate
Sezione intitolata “Utilizzo delle credenziali salvate”Una volta salvate le credenziali, vengono utilizzate automaticamente durante il build:
# Credentials automatically loaded from ~/.capgo-credentials/credentials.jsonbunx @capgo/cli@latest build request com.example.app --platform iosPuoi anche sovrascrivere le credenziali salvate usando variabili di ambiente:
# Environment variables take precedence over saved credentialsBUILD_CERTIFICATE_BASE64="..." \P12_PASSWORD="different-password" \bunx @capgo/cli@latest build request com.example.app --platform iosOrdine di precedenza:
- Variabili d'ambiente (priorità massima)
- Credenziali salvate (
~/.capgo-credentials/credentials.json, o locali.capgo-credentials.json) - Nessuna credenziale (priorità minima)
Visualizzazione delle credenziali salvate
Sezione intitolata “Visualizzazione credenziali salvate”Elenca le credenziali che hai salvato:
bunx @capgo/cli@latest build credentials listEsempio di 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.Best practice di sicurezza
Sezione intitolata “Best practice di sicurezza”Sicurezza del Local Storage
Sezione intitolata “Sicurezza del Local Storage”-
Permessi dei file
Finestra del terminale # Global credentials directory + filechmod 700 ~/.capgo-credentialschmod 600 ~/.capgo-credentials/credentials.json# Local (per-project) credentials, if you use --localchmod 600 .capgo-credentials.json -
Non committare mai le credenziali
Finestra del terminale # Ignore the per-project credentials file (used with --local)echo ".capgo-credentials.json" >> .gitignoreIl file globale si trova nella tua home directory, fuori dal repo.
-
Separa le credenziali
- Usa credenziali diverse per lo sviluppo locale e la CI/CD
- Ruota le credenziali regolarmente
- Non condividere le credenziali tra i membri del team
Utilizzo in CI/CD
Sezione intitolata “Uso in CI/CD”Per gli ambienti CI/CD, preferisci le variabili d'ambiente alle credenziali salvate.
Esporta un file pronto all'uso .env (consigliata)
Sezione intitolata “Esporta un .env pronto all'uso (consigliato)”Invece di codificare in base64 manualmente ogni file di credenziali (vedi qui sotto), lascia che build credentials manage generi il file per te:
bunx @capgo/cli@latest build credentials manage# pick your app → choose "Export to .env"Scrive un file .env.capgo.<appId>.<platform> file (permessi 0600) contenente ogni credenziale salvata come variabile d'ambiente: ogni riga è un segreto da aggiungere al tuo provider CI/CD. Entrambe le piattaforme sono combinate di default; aggiungi --platform ios oppure --platform android per limitarlo a una sola.
Riferimento completo alle variabili d'ambiente
Sezione intitolata “Riferimento completo alle variabili d'ambiente”Il CLI legge le seguenti variabili d'ambiente per le credenziali:
Credenziali iOS:
| Variabile | Descrizione | Formato | Obbligatorio |
|---|---|---|---|
BUILD_CERTIFICATE_BASE64 | Certificato P12/PKCS12 per la firma di code | Base64 | Sì (release) |
CAPGO_IOS_PROVISIONING_MAP | Mappa JSON dei bundle ID ai dati del provisioning profile | Stringa JSON | Sì (release) |
P12_PASSWORD | Password per il certificato P12 | Testo in chiaro | Opzionale |
APPLE_KEY_ID | Key ID API di App Store Connect | Stringa (es. “ABC1234567”) | Vedi nota¹ |
APPLE_ISSUER_ID | Issuer ID API di App Store Connect | Stringa UUID | Vedi nota¹ |
APPLE_KEY_CONTENT | Chiave API di App Store Connect (contenuto file .p8) | Base64 | Vedi nota¹ |
APP_STORE_CONNECT_TEAM_ID | Team ID di Apple Developer | Stringa (es. “XXXXXXXXXX”) | Sì |
CAPGO_IOS_DISTRIBUTION | Modalità di distribuzione: app_store (default) o ad_hoc | Stringa | No |
Credenziali Android:
| Variabile | Descrizione | Formato | Obbligatorio |
|---|---|---|---|
ANDROID_KEYSTORE_FILE | File keystore per la firma di APK/AAB | Base64 | Sì (release) |
KEYSTORE_KEY_ALIAS | Alias della chiave all'interno del keystore | Stringa | Sì (release) |
KEYSTORE_KEY_PASSWORD | Password per l'alias della chiave | Testo in chiaro | Sì* |
KEYSTORE_STORE_PASSWORD | Password del file keystore | Testo in chiaro | Sì* |
PLAY_CONFIG_JSON | JSON dell'account di servizio Google Play | Base64 | Yes (submission) |
*Se viene fornita una sola password, verrà utilizzata per entrambe KEYSTORE_KEY_PASSWORD e KEYSTORE_STORE_PASSWORD.
Esempio di GitHub Actions
Sezione intitolata “Esempio di GitHub Actions”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 }}Preparazione dei valori Base64
Sezione intitolata “Preparazione dei valori Base64”Per convertire i file delle credenziali in base64 per i segreti 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.txtPerché le variabili d'ambiente sono più sicure
Sezione intitolata “Perché le variabili d'ambiente sono più sicure”Questo approccio è più sicuro perché:
- I segreti sono gestiti dalla tua piattaforma CI/CD
- Nessun file di credenziali sui runner
- Rotazione e controllo degli accessi semplificati
- Audit trail per l'uso dei segreti
Rotazione delle credenziali
Sezione intitolata “Rotazione delle credenziali”Ruota regolarmente le tue credenziali:
- iOS: Genera nuovi certificati e chiavi API ogni anno
- Android: Cambia le password del keystore ogni anno
- Dopo cambiamenti nel team: Ruota quando i membri del team lasciano l'organizzazione
Aggiorna le credenzial salvate:
# Re-run save command with new credentialsbunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...Risoluzione problemi
Sezione intitolata “Troubleshooting”“Nessuna credenziale trovata”
Sezione intitolata “Nessuna credenziale trovata”Se la build segnala che non sono state trovate credenziali:
-
Verifica se le credenziali sono salvate:
Finestra del terminale bunx @capgo/cli@latest build credentials list -
Salva le credenziali se mancanti:
Finestra del terminale bunx @capgo/cli@latest build credentials save --platform ios ... -
Verifica che il file di credenziali esista:
Finestra del terminale ls -la ~/.capgo-credentials/credentials.json # globalls -la .capgo-credentials.json # local (--local)
“Permesso negato” durante la lettura delle credenziali
Sezione intitolata ““Permission denied” durante la lettura delle credenziali”Correggi i permessi del file:
chmod 600 ~/.capgo-credentials/credentials.json # globalchmod 600 .capgo-credentials.json # localLe credenziali non vengono usate
Sezione intitolata “Credenziali non utilizzate”Verifica che sia specificata la piattaforma corretta:
# 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 credentialsCancella e salva nuovamente le credenziali
Sezione intitolata “Cancella e salva di nuovo le credenziali”Se le credenziali sembrano corrotte:
# Clear all credentialsbunx @capgo/cli@latest build credentials clear
# Save againbunx @capgo/cli@latest build credentials save --platform ios ...Migrazione dalle variabili d'ambiente
Sezione intitolata “Migrazione dalle variabili d'ambiente”Se stai usando le variabili d'ambiente, puoi migrare alle credenziali salvate:
-
Estrai le variabili d'ambiente attuali
Finestra del terminale echo $BUILD_CERTIFICATE_BASE64 # Verify they exist -
Decodifica i file base64 nei file originali (se necessario)
Finestra del terminale echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision -
Salva usando CLI
Finestra del terminale 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"Se hai credenziali salvate nel vecchio formato (singolo
BUILD_PROVISION_PROFILE_BASE64), esegui:Finestra del terminale bunx @capgo/cli@latest build credentials migrate --platform iosQuesto converte il profilo singolo legacy in un
CAPGO_IOS_PROVISIONING_MAPe rimuove il vecchioBUILD_PROVISION_PROFILE_BASE64eAPPLE_PROFILE_NAMEchiavi. -
Testa la build
Finestra del terminale bunx @capgo/cli@latest build request com.example.app --platform ios -
Rimuovi le variabili d'ambiente (opzionale)
Finestra del terminale unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64
Posizione file
Sezione “Posizione del file”Le credenziali sono memorizzate in un singolo file JSON:
- Globale (predefinito):
~/.capgo-credentials/credentials.json— condiviso tra tutti i tuoi progetti - Locale (con
--local):.capgo-credentials.jsonnella root del tuo progetto — sovrascrive il file globale per quel progetto
Il file viene creato automaticamente al primo salvataggio delle credenziali. Aggiungi .capgo-credentials.json al tuo .gitignore in modo che le credenziali per progetto non vengano mai commit.
Prossimi passi
Sezione intitolata “Prossimi passi”- Per iniziare - Crea la tua prima build
- Build iOS - Configurazione di build specifica per iOS
- Build Android - Configurazione di build specifica per Android
- Risoluzione problemi - Problemi comuni e soluzioni
Serve aiuto?
Sezione intitolata “Serve aiuto?”- 📚 Guida al troubleshooting
- 💬 community Discord
- 📧 Email: support@capgo.app
Continua da Gestione credenziali
Sezione intitolata “Continua da Gestione delle credenziali”Se stai usando Gestione credenziali per pianificare l'automazione CI/CD e connetterla a CI/CD con Capgo per il workflow del prodotto in Capgo CI/CD, Capgo Native Build per il workflow di prodotto in Capgo Native Builds, Integrazioni Capgo per il workflow di prodotto in Integrazioni Capgo, Integrazione CI/CD per i dettagli implementativi in CI/CD Integration, e Integrazione GitHub Actions per i dettagli implementativi in GitHub Actions Integration.