Gestione delle credenziali
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Gestisci i tuoi credenziali di costruzione per iOS e Android localmente per costruire facilmente le nuvole.
Panoramica
Sottosezione intitolata “Panoramica”Capgo CLI conserva le tue credenziali di costruzione su macchina — mai sui server di Capgo. Di default vivono in uno globale file, ~/.capgo-credentials/credentials.json, condiviso tra tutti i tuoi progetti. Passa --local per tenerli per-progetto in .capgo-credentials.json al posto. Quando esegui una build, i credenziali salvate vengono utilizzate automaticamente e inviate in modo sicuro a Capgo, quindi eliminate dopo la completamento della build.
Gestisci Credenziali Interattivamente
Sezione intitolata “Gestisci Credenziali Interattivamente”La via più veloce per lavorare con le tue credenziali salvate è il gestore interattivo. Si apre una finestra di comando (lo stesso utilizzato da build init utilizza) dove puoi esplorare cosa è memorizzato, vedere cosa è configurato per app e piattaforma, esportare un file pronto per il CI/CD .env o cancellare le credenziali di una piattaforma:
bunx @capgo/cli@latest build credentials manage| Opzione | Descrizione |
|---|---|
--appId <appId> | Applicazione da gestire (ti chiede di scegliere se omesso) |
--platform <ios|android> | Piattaforma da gestire (ti chiede di scegliere se omesso) |
--local | Usa il file per progetto .capgo-credentials.json al posto del file globale |
Preferere comandi uno-shot, eseguibili da script? Utilizza i comandi individuali di seguito.
Salva Credenziali
Sezione intitolata “Salva Credenziali”Ricorda le tue credenziali di build localmente per l'uso automatico:
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]Aggiorna Credenziali
Sezione intitolata “Aggiorna Credenziali”Aggiorna le credenziali esistenti senza doverle fornire nuovamente tutto:
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]The update utilizza comando fusione additiva per i profili di provisioning — i nuovi profili vengono fusi con quelli esistenti. Per sostituire l'intera mappa di provisioning al suo posto, aggiungi --overwrite-ios-provisioning-map.
Esempio — aggiungi un profilo di estensione ai credenziali esistenti:
bunx @capgo/cli@latest build credentials update \ --platform ios \ --ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"Il comando di aggiornamento accetta le stesse opzioni di save ma tutte sono facoltative — solo i campi che fornisci vengono aggiornati.
Credenziali elencate
Sezione intitolata “Credenziali elencate”Visualizza le credenziali salvate attualmente (le password sono mascherate):
bunx @capgo/cli@latest build credentials list
# List credentials for a specific appbunx @capgo/cli@latest build credentials list --appId com.example.appCancella le credenziali
Sezione intitolata “Cancella le credenziali”Elimina 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 iosMigrare le credenziali
Sezione intitolata “Migrare le credenziali”Converti il formato di archiviazione legacy a singolo profilo nel nuovo formato multi-target:
bunx @capgo/cli@latest build credentials migrate --platform iosIl comando di migrazione rileva le vecchie credenziali BUILD_PROVISION_PROFILE_BASE64 credenziali, le converte in CAPGO_IOS_PROVISIONING_MAP, e rimuove le chiavi legacy. Vedi Migrazione da Profilo Singolo per i dettagli.
Salvataggio delle credenziali iOS
Sezione intitolata “Salvataggio delle credenziali iOS”Esempio Completo
Sottosezione 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 per iOS
Sottosezione intitolata “Opzioni per iOS”| Opzione | Descrizione | Obbligatorio |
|---|---|---|
--certificate <path> | Percorso del file di certificato .p12 | Sì (rilascio) |
--p12-password <password> | Password per il file di certificato .p12 | Sì (rilascio) |
--ios-provisioning-profile <mapping> | Mappatura del profilo di provisioning (bundleId=path). Ripetibile per applicazioni multi-target. Se presente solo un profilo e nessun prefisso bundleId, CLI si auto-inferisce dal profilo. | Sì (rilascio) |
--apple-key <path> | Percorso della chiave API .p8 di App Store Connect | Vedi nota¹ |
--apple-key-id <id> | ID chiave di App Store Connect API | Vedi nota¹ |
--apple-issuer-id <id> | ID emittente di App Store Connect API (UUID) | Vedi nota¹ |
--apple-team-id <id> | ID team di App Store Connect | Sì |
--apple-id <email> | E-mail Apple ID per caricamento della password app-specifica (alternativa alla chiave API) | Vedi nota² |
--apple-app-specific-password <password> | Password app-specifica (xxxx-xxxx-xxxx-xxxx) | Vedi nota² |
--apple-app-id <id> | ID numerico di App Store Connect (ad esempio 1234567890) | Vedi nota² |
--ios-distribution <mode> | Modalità di distribuzione: app_store o ad_hoc | No |
--output-upload | Abilita un link di download a tempo limitato Capgo per l'artifact del build | No (predefinito: false) |
--output-retention <seconds> | Quanto tempo mantenere gli output del build (ad esempio 3600s) | No (predefinito: 3600s) |
--skip-build-number-bump | Saltare l'aumento automatico del numero di versione | No |
Cosa si Salva
Seleziona la sezione intitolata “Cosa si Salva”Quando salvate le credenziali iOS, il CLI:
- Legge i file del certificato e del profilo di provisioning
- Li converte in codifica base64
- Li salva in
~/.capgo-credentials/credentials.json(o.capgo-credentials.jsoncon--local) - Memorizza le password e gli ID come testo piano (solo file locali)
La struttura del file memorizzato:
{ "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" }}Salvare credenziali Android
Sezione intitolata “Salvare credenziali Android”Sezione intitolata “Esempio Completo”
Finestra del terminalebunx @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 per Android
Sezione intitolata “Opzioni per Android”| Opzione | Descrizione | Richiesto |
|---|---|---|
--keystore <path> | Percorso per il file .keystore o .jks | Sì (rilascio) |
--keystore-alias <alias> | Cognome dell'alias nella chiave | Sì (rilascio) |
--keystore-key-password <password> | Password per l'alias della chiave | Sì (rilascio) |
--keystore-store-password <password> | Password per il keystore | Sì (rilascio) |
--play-config <path> | Percorso al file JSON del servizio account di Play Store | Sì (invio) |
Cosa si conserva
Sezione intitolata “Cosa si conserva”Quando si salvano le credenziali Android, il CLI:
- Legge i file keystore e JSON del servizio account
- Li converte in codifica base64
- Li salva in
~/.capgo-credentials/credentials.jsono.capgo-credentials.jsoncon--local) - Conserva le password e l'alias come testo normale (solo file locali)
La struttura del file archiviato:
{ "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 quando si costruisce:
# Credentials automatically loaded from ~/.capgo-credentials/credentials.jsonbunx @capgo/cli@latest build request com.example.app --platform iosÈ anche possibile sovrascrivere le credenziali salvate utilizzando le 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 di ambiente (priorità più alta)
- Dettagli delle credenziali salvate (
~/.capgo-credentials/credentials.json, o locale.capgo-credentials.json) - Senza credenziali (priorità più bassa)
Visualizza Credenziali Salvate
Sottosezione intitolata “Visualizza Credenziali Salvate”Elenco delle credenziali salvate:
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.Pratiche di sicurezza migliorative
Sottosezione intitolata “Pratiche di sicurezza migliorative”Salvataggio Locale Sicurezza
Sottosezione intitolata “Salvataggio Locale Sicurezza”-
Permessi di File
Fenestra 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 Commettere Mai le Credenziali
Fenestra del Terminale # Ignore the per-project credentials file (used with --local)echo ".capgo-credentials.json" >> .gitignoreIl file globale risiede nella directory casella utente, al di fuori del repository.
-
Credenziali Separate
- Usa credenziali diverse per lo sviluppo locale vs CI/CD
- Rimuovi le credenziali regolarmente
- Non condividere le credenziali tra membri del team
Utilizzo CI/CD
Sezione intitolata “Utilizzo CI/CD”Per ambienti CI/CD, preferisci le variabili di ambiente alle credenziali salvate.
Esporta un file .env pronto all'uso .env (consigliato)
Sezione intitolata “Esporta un file .env pronto all'uso (consigliato)”Invece di codificare manualmente ogni file di credenziali in base64 (vedi sotto), lascia build credentials manage genera il file per te:
bunx @capgo/cli@latest build credentials manage# pick your app → choose "Export to .env"Scrive un .env.capgo.<appId>.<platform> file (permessi 0600) contenente ogni credenziale salvata come variabile di ambiente — ogni riga è un segreto da aggiungere al tuo provider CI/CD. Le due piattaforme sono combinate per impostazione predefinita; aggiungi --platform ios o --platform android per limitarlo a una.
Riferimento completo alle variabili di ambiente
Sottosezione intitolata “Riferimento completo alle variabili di ambiente”CLI legge le seguenti variabili di ambiente per le credenziali:
Credentiali iOS:
| Variabile | Descrizione | Formato | Richiesto |
|---|---|---|---|
BUILD_CERTIFICATE_BASE64 | Certificato P12/PKCS12 per la firma di code | Base64 | Sì (rilascio) |
CAPGO_IOS_PROVISIONING_MAP | JSON mappa degli ID pacchetti alle informazioni di profilo di provisioning | Stringa JSON | Sì (rilascio) |
P12_PASSWORD | Password per il certificato P12 | Testo normale | Facoltativo |
APPLE_KEY_ID | ID chiave App Store Connect API | Stringa (ad esempio, "ABC1234567") | Vedi nota¹ |
APPLE_ISSUER_ID | ID emittente App Store Connect API | Stringa UUID | Vedi nota¹ |
APPLE_KEY_CONTENT | Contenuto della chiave App Store Connect API (.p8 file) | Base64 | Vedi nota¹ |
APP_STORE_CONNECT_TEAM_ID | ID del team di sviluppatore di Apple | Stringa (ad esempio, “XXXXXXXXXX”) | Sì |
CAPGO_IOS_DISTRIBUTION | Modalità di distribuzione: app_store (di default) o ad_hoc | Stringa | No |
Credenziali Android:
| Variabile | Descrizione | Formato | Richiesto |
|---|---|---|---|
ANDROID_KEYSTORE_FILE | File del keystore per la firma APK/AAB | Base64 | Sì (rilease) |
KEYSTORE_KEY_ALIAS | Alias della chiave all'interno del keystore | Stringa | Sì (rilease) |
KEYSTORE_KEY_PASSWORD | Password per l'alias della chiave | Testo piano | Sì* |
KEYSTORE_STORE_PASSWORD | Password per il file del keystore | Testo normale | Sì |
PLAY_CONFIG_JSON | File JSON del servizio Google Play | Base64 | Sì (invio) |
*Se vengono forniti solo due password, verrà utilizzata la prima per l'accesso e la seconda per il token* KEYSTORE_KEY_PASSWORD e KEYSTORE_STORE_PASSWORD.
Esempi di azioni di GitHub
Sezione intitolata “Esempi di azioni di GitHub”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 dei tuoi 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 di Ambiente sono più Sicure
Sezione intitolata “Perché le Variabili di Ambiente sono più Sicure”Questo approccio è più sicuro perché:
- I segreti sono gestiti dalla tua piattaforma CI/CD
- No file di credenziali sui runner
- Accesso facile e controllo delle credenziali
- Tracce di audit per l'uso delle credenziali
Rotazione delle credenziali
Sottosezione intitolata “Rotazione delle credenziali”Rotazione regolare delle credenziali:
- iOSGenera nuovi certificati e API chiavi ogni anno
- AndroidCambia le password del keystore ogni anno
- Dopo i cambiamenti della squadraRotazione quando i membri della squadra lasciano
Aggiorna le credenziali salvate:
# Re-run save command with new credentialsbunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...Risoluzione dei problemi
Sezione intitolata “Risoluzione dei problemi””Nessuna credenziale trovata”
Sezione intitolata “”Nessuna credenziale trovata””Se il build dice che non sono state trovate le credenziali:
-
Controlla 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 l'esistenza del file delle credenziali:
Finestra del terminale ls -la ~/.capgo-credentials/credentials.json # globalls -la .capgo-credentials.json # local (--local)
“Permission denied” when reading credentials
errore di permesso quando si leggono le credenzialiSezione intitolata “errore di permesso quando si leggono le credenziali”
chmod 600 ~/.capgo-credentials/credentials.json # globalchmod 600 .capgo-credentials.json # localCopia nel portapenne
Le credenziali non vengono utilizzateVerifica di aver specificato 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 credentialsPulisci e salva nuovamente le credenziali
Sottosezione intitolata “Pulisci e salva nuovamente 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 da Variabili di Ambiente
Sottosezione intitolata “Migrazione da Variabili di Ambiente”Se stai utilizzando attualmente le variabili di ambiente, puoi migrare alle credenziali salvate:
-
Estrai le tue attuali variabili di ambiente
Finestra del terminale echo $BUILD_CERTIFICATE_BASE64 # Verify they exist -
Decodifica i file base64 di ritorno ai file originali (se necessario)
Finestra del terminale echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision -
Salva utilizzando il 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 già le credenziali salvate nel formato vecchio (singolo
BUILD_PROVISION_PROFILE_BASE64), esegui:Finestra del terminale bunx @capgo/cli@latest build credentials migrate --platform iosQuesto converte il profilo legacy a
CAPGO_IOS_PROVISIONING_MAPe rimuove gliBUILD_PROVISION_PROFILE_BASE64eAPPLE_PROFILE_NAMEchiavi. -
Testa la costruzione
Finestra del terminale bunx @capgo/cli@latest build request com.example.app --platform ios -
Elimina le variabili di ambiente (facoltativo)
Finestra del terminale unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64
Posizione del file
Sottosezione intitolata “Posizione del file”I credenziali sono memorizzate in un unico file JSON:
- Globali (di default):
~/.capgo-credentials/credentials.json— condiviso da tutti i tuoi progetti - Locali (con
--local):.capgo-credentials.jsonnel root del tuo progetto — sovrascrive il file globale per quel progetto
Il file viene creato automaticamente la prima volta che si salvano le credenziali. Aggiungi .capgo-credentials.json a .gitignore così che le credenziali per progetto non vengono mai committe.
Passaggi successivi
Sezione intitolata “Passaggi successivi”- Avvio - Crea la tua prima build
- Build iOS - Configurazione di build specifica per iOS
- Build Android - Configurazione di build specifica per Android
- Risoluzione dei problemi - Problemi comuni e soluzioni
Continua da Gestione delle credenziali
Sezione intitolata “Continua da Gestione delle credenziali”Se stai utilizzando Gestione delle credenziali per pianificare l'automazione CI/CD, connettilo con Capgo CI/CD per il flusso di lavoro del prodotto in Capgo CI/CD, Capgo Build nativi per il flusso di lavoro del prodotto in Capgo Costruzioni native, Capgo Integrazioni per il flusso di lavoro del prodotto in Capgo Integrazioni, Integrazione CI/CD per il dettaglio di implementazione in Integrazione CI/CD, e GitHub Integrazione azioni per il dettaglio di implementazione in GitHub Integrazione azioni.