Passer à la navigation

Gestion des identifiants

Gérez vos clés de build iOS et Android localement pour des builds cloud faciles.

Capgo CLI stocke vos clés de build sur votre machine — jamais sur les serveurs de Capgo . Par défaut, ils vivent dans un global file, ~/.capgo-credentials/credentials.json, partagé avec tous vos projets. --local pour les conserver pour les conserver in .capgo-credentials.json Lorsque vous exécutez une build, les informations d'identification enregistrées sont utilisées automatiquement et envoyées de manière sécurisée à Capgo, puis supprimées après la fin de la build.

Gérer les Identifiants Interactivement

Gérer les identifiants de manière interactive

La manière la plus rapide de travailler avec vos credenciaux sauvegardés est le gestionnaire interactif. Il ouvre un TUI (le même que) build init uses) where you can browse what’s stored, see what’s configured per app and platform, export a CI/CD-ready .env file, or delete a platform’s credentials:

fenêtre de terminal
bunx @capgo/cli@latest build credentials manage
OptionDescription
--appId <appId>Application à gérer (vous invite à choisir si omis)
--platform <ios|android>Plateforme à gérer (vous invite à choisir si omis)
--localUtilisez le fichier par projet .capgo-credentials.json au lieu du fichier global

Préférez-vous des commandes scriptables une seule fois ? Utilisez les commandes individuelles ci-dessous.

Enregistrer les informations d'identification

Enregistrez vos identifiants

Stockez vos informations de build locales pour une utilisation automatique :

Fenêtre de terminal
bunx @capgo/cli@latest build credentials save --platform <ios|android> [options]

Mettre à jour les informations d'identification

Mise à jour des informations d'identification

Mettre à jour partiellement les informations d'identification existantes sans les réentrer toutes.

Fenêtre de terminal
bunx @capgo/cli@latest build credentials update --platform <ios|android> [options]

Le update La commande utilise la fusion additive Pour la configuration des profils de provisioning — les nouveaux profils sont fusionnés avec les anciens. Pour remplacer la carte de provisioning entière, ajoutez --overwrite-ios-provisioning-map.

Exemple — ajoutez un profil d'extension aux informations d'identification existantes :

Fenêtre de terminal
bunx @capgo/cli@latest build credentials update \
--platform ios \
--ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"

La commande de mise à jour accepte les mêmes options que save mais toutes sont facultatives — seuls les champs que vous fournissez sont mis à jour.

Afficher les crédentiels enregistrés actuellement (les mots de passe sont masqués)

Fenêtre de terminal
bunx @capgo/cli@latest build credentials list
# List credentials for a specific app
bunx @capgo/cli@latest build credentials list --appId com.example.app

Supprimer les informations d'identification

Effacer vos identifiants

Section intitulée « Effacer vos identifiants »

Fenêtre de terminal
# Clear all credentials
bunx @capgo/cli@latest build credentials clear
# Clear credentials for a specific app + platform
bunx @capgo/cli@latest build credentials clear --appId com.example.app --platform ios

Convertir le format de profil unique hérité en format multi-cible nouveau :

Fenêtre de terminal
bunx @capgo/cli@latest build credentials migrate --platform ios

La commande de migration détecte les anciens BUILD_PROVISION_PROFILE_BASE64 La commande de migration détecte les anciennes CAPGO_IOS_PROVISIONING_MAPinformations d'identification, les convertit en , et supprime les clés héritées. Voir Pour plus de détails.

Fenêtre de terminal
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"
OptionDescriptionObligatoire
--certificate <path>Chemin vers le fichier de certificat .p12Oui (version de production)
--p12-password <password>Mot de passe du certificat .p12Oui (version de production)
--ios-provisioning-profile <mapping>Correspondance de profil de provisionnement (bundleId=pathSi qu'un seul profil et sans préfixe bundleId, CLI est automatiquement déduit du profil.Oui (version de production)
--apple-key <path>Chemin vers la clé .p8 d'App Store Connect APIVoir la note¹
--apple-key-id <id>ID de la clé d'App Store Connect APIVoir note¹
--apple-issuer-id <id>App Store Connect API ID émetteur (UUID)Voir note¹
--apple-team-id <id>ID d'équipe App Store ConnectOui
--apple-id <email>Adresse e-mail Apple ID pour l'upload du mot de passe d'application (alternative au API clé)Voir note²
--apple-app-specific-password <password>Mot de passe d'application (xxxx-xxxx-xxxx-xxxx)Voir note²
--apple-app-id <id>ID d'application numérique App Store Connect (par exemple 1234567890)Voir note²
--ios-distribution <mode>Mode de distribution : app_store (par défaut) ou ad_hocNon
--output-uploadEnable a time-limited Capgo download link for the build artifactNon (par défaut: false)
--output-retention <seconds>How long to keep build outputs (e.g. 3600s)Non (par défaut: 3600s)
--skip-build-number-bumpIgnorer l'incrémentation automatique du numéro de buildNon

When you save iOS credentials, the CLI:

  1. Lis les fichiers de certificat et de profil de provisionnement
  2. Les convertit en codage base64
  3. Les enregistre dans ~/.capgo-credentials/credentials.json (ou .capgo-credentials.json avec --local)
  4. Stores passwords and IDs as plain text (local files only)

La structure de fichiers stockés :

{
"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"
}
}
Fenêtre de terminal
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.json
OptionOptionDescription
--keystore <path>Chemin vers le fichier .keystore ou .jksOui (version de sortie)
--keystore-alias <alias>Alias de la clé dans le coffre-fortOui (version de production)
--keystore-key-password <password>Mot de passe pour l'alias de la cléOui (version de production)
--keystore-store-password <password>Mot de passe pour le coffre-fortOui (version de production)
--play-config <path>Path to Play Store service account JSONOui (soumission)

When you save Android credentials, the CLI:

  1. Lecture du coffre-fort et du fichier JSON du compte de service
  2. Les convertit en codage base64
  3. Les enregistre dans ~/.capgo-credentials/credentials.json ou .capgo-credentials.json avec --local)
  4. Stores passwords and alias as plain text (local files only)

La structure de fichier stockée :

{
"android": {
"ANDROID_KEYSTORE_FILE": "...",
"PLAY_CONFIG_JSON": "...",
"KEYSTORE_KEY_ALIAS": "my-key-alias",
"KEYSTORE_KEY_PASSWORD": "...",
"KEYSTORE_STORE_PASSWORD": "..."
}
}

Utiliser les informations de connexion enregistrées

Utilisation des Identifiants Sauvegardés

Once you’ve saved credentials, they’re automatically used when you build:

Fenêtre de terminal
# Credentials automatically loaded from ~/.capgo-credentials/credentials.json
bunx @capgo/cli@latest build request com.example.app --platform ios

You can also override saved credentials using environment variables:

Fenêtre de terminal
# Environment variables take precedence over saved credentials
BUILD_CERTIFICATE_BASE64="..." \
P12_PASSWORD="different-password" \
bunx @capgo/cli@latest build request com.example.app --platform ios

Ordre de priorité :

  1. Variables d'environnement (priorité la plus élevée)
  2. Informations d'identification enregistrées (~/.capgo-credentials/credentials.json, ou locales) .capgo-credentials.json)
  3. Aucune information d'identification (priorité la plus basse)

Afficher les informations d'identification enregistrées

Voir les informations de connexion sauvegardées

Listez vos identifiants sauvegardés :

Fenêtre de terminal
bunx @capgo/cli@latest build credentials list

__CAPGO_KEEP_0__

📋 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.
  1. Permissions de Fichier

    Fenêtre de Terminal
    # Global credentials directory + file
    chmod 700 ~/.capgo-credentials
    chmod 600 ~/.capgo-credentials/credentials.json
    # Local (per-project) credentials, if you use --local
    chmod 600 .capgo-credentials.json
  2. Ne jamais Commiter les Informations d'Accès

    Fenêtre de Terminal
    # Ignore the per-project credentials file (used with --local)
    echo ".capgo-credentials.json" >> .gitignore

    Le fichier global se trouve dans votre répertoire personnel, en dehors du dépôt.

  3. Credenciaux séparés

    • Utiliser des credenciaux différents pour le développement local vs CI/CD
    • Roter les credenciaux régulièrement
    • Ne pas partager les credenciaux entre les membres de l'équipe

Pour les environnements CI/CD, préférez les variables d'environnement aux credenciaux sauvegardés.

Exporter un .env prêt à l'emploi (recommandé)

Au lieu de coder chaque fichier de credenciaux en base64 de manière manuelle (voir below), let build credentials manage Copier dans le presse-papier

fenêtre de terminal
bunx @capgo/cli@latest build credentials manage
# pick your app → choose "Export to .env"

Il écrit un .env.capgo.<appId>.<platform> fichier (permissions) 0600) containing every saved credential as an environment variable — each line is one secret to add to your CI/CD provider. Both platforms are combined by default; add --platform ios or --platform android pour le restreindre à un.

Référence complète des variables d'environnement

Section intitulée « Référence complète des variables d'environnement »

Le CLI lit les variables d'environnement suivantes pour les informations d'identification :

Informations d'identification iOS :

VariableDescriptionFormatObligatoire
BUILD_CERTIFICATE_BASE64Certificat P12/PKCS12 pour la signature de codeBase64Oui (version de production)
CAPGO_IOS_PROVISIONING_MAPCarte JSON des ID de bundle aux données de profil de provisionnementChaîne JSONOui (version de production)
P12_PASSWORDMot de passe pour le certificat P12Texte en clairFacultatif
APPLE_KEY_IDClé API d'App Store ConnectChaîne de caractères (par exemple, « ABC1234567 »)Voir note¹
APPLE_ISSUER_IDApp Store Connect API Identifiant émetteurChaîne de UUIDVoir note¹
APPLE_KEY_CONTENTApp Store Connect API clé (.fichier p8 contenu)Base64Voir note¹
APP_STORE_CONNECT_TEAM_IDIdentifiant d'équipe développeur AppleChaîne (par exemple, « XXXXXXXXXX »)Oui
CAPGO_IOS_DISTRIBUTIONDistribution mode : app_store (par défaut) ou ad_hocStringNon

Identifiants Android :

VariableDescriptionFormatObligatoire
ANDROID_KEYSTORE_FILEFichier de clé de signature pour signer APK/AABBase64Oui (version de production)
KEYSTORE_KEY_ALIASAlias de clé au sein du coffre-fort.StringOui (version)
KEYSTORE_KEY_PASSWORDMot de passe pour l'alias de la cléTexte en clairOui*
KEYSTORE_STORE_PASSWORDMot de passe pour le fichier de cléTexte en clairOui*
PLAY_CONFIG_JSONJSON de compte de service Google PlayBase64Oui (soumission)

*Si seul un mot de passe est fourni, il sera utilisé pour les deux KEYSTORE_KEY_PASSWORD et KEYSTORE_STORE_PASSWORD.

github/flux de travail/build.yml
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 }}

Pour convertir vos fichiers de clés en base64 pour les secrets CI/CD :

Fenêtre de 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:
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 JSON
base64 -i play-store-service-account.json | tr -d '\n' > play_config_base64.txt

Pourquoi les variables d'environnement sont plus sécurisées

Section intitulée « Pourquoi les variables d'environnement sont plus sécurisées »

Cette approche est plus sécurisée car :

  • Les secrets sont gérés par votre plateforme CI/CD
  • Aucun fichier de credenciaux sur les exécutants
  • Rotation et contrôle d'accès faciles
  • Traçabilité des utilisations de secrets

Rotez régulièrement vos credenciaux :

  1. iOS: Générez de nouveaux certificats et des API clés chaque année
  2. Android: Changer les mots de passe du keystore tous les ans
  3. : Après les changements d'équipe: Rouler lorsque les membres de l'équipe quittent

Mise à jour des informations de connexion enregistrées

Fenêtre de terminal
# Re-run save command with new credentials
bunx @capgo/cli@latest build credentials save --platform ios --certificate ./new-cert.p12 ...

Aucune information de connexion trouvée

Section titled ““No credentials found””

Si le build indique qu'aucun credencial n'a été trouvé :

  1. Vérifiez si les informations d'identification sont enregistrées:

    Fenêtre de terminal
    bunx @capgo/cli@latest build credentials list
  2. Enregistrer les informations d'identification si elles manquent:

    Fenêtre de terminal
    bunx @capgo/cli@latest build credentials save --platform ios ...
  3. Vérifiez l'existence du fichier de crédentials:

    Fenêtre de terminal
    ls -la ~/.capgo-credentials/credentials.json # global
    ls -la .capgo-credentials.json # local (--local)

Accès refusé lors de la lecture des informations d'identification

Permission refusée lors de la lecture des informations d'identification

Réparer les permissions de fichier :

Fenêtre de terminal
chmod 600 ~/.capgo-credentials/credentials.json # global
chmod 600 .capgo-credentials.json # local

Les identifiants ne sont pas utilisés

Les informations d'identification ne sont pas utilisées

Vérifiez que la plateforme correcte est spécifiée :

Fenêtre de terminal
# Make sure --platform matches saved credentials
bunx @capgo/cli@latest build request com.example.app --platform ios # Uses ios credentials
bunx @capgo/cli@latest build request com.example.app --platform android # Uses android credentials

Vérifiez que la plateforme correcte est spécifiée :

Effacer et réenregistrer les informations d'identification

Si les informations d'identification semblent corrompues :

Fenêtre de terminal
# Clear all credentials
bunx @capgo/cli@latest build credentials clear
# Save again
bunx @capgo/cli@latest build credentials save --platform ios ...

Si vous utilisez actuellement des variables d'environnement, vous pouvez migrer vers des informations de connexion enregistrées :

  1. Extraire vos variables d'environnement actuelles

    Fenêtre de terminal
    echo $BUILD_CERTIFICATE_BASE64 # Verify they exist
  2. Décodez les fichiers base64 en fichiers originaux Si nécessaire

    Fenêtre de terminal
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. Sauvegarder à l'aide de CLI

    Fenêtre de terminal
    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"

    Si vous avez des identifiants existants enregistrés sous la forme ancienne (simple BUILD_PROVISION_PROFILE_BASE64Exécutez :

    Fenêtre de terminal
    bunx @capgo/cli@latest build credentials migrate --platform ios

    Cela convertit la version legacy d'un profil unique en un CAPGO_IOS_PROVISIONING_MAP et supprime les anciens BUILD_PROVISION_PROFILE_BASE64 et APPLE_PROFILE_NAME keys.

  4. Tester la construction

    Fenêtre de terminal
    bunx @capgo/cli@latest build request com.example.app --platform ios
  5. Supprimer les variables d'environnement (facultatif)

    Fenêtre de terminal
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

Les identifiants sont stockés dans un seul fichier JSON.

  • Globale (par défaut) : ~/.capgo-credentials/credentials.json — partagée avec tous vos projets
  • Locale (avec) --local): .capgo-credentials.json dans votre dossier racine de projet — remplace le fichier global pour ce projet

Le fichier est créé automatiquement lors de la première sauvegarde de vos informations de connexion. Ajoutez .capgo-credentials.json à votre .gitignore Les identifiants de projet ne sont jamais commités.

Si vous utilisez Gestion des Identifiants pour planifier l'automatisation CI/CD, le connecter avec Capgo CI/CD pour le flux de travail du produit dans Capgo CI/CD, Capgo Déploiements natifs pour le flux de travail du produit dans Capgo Déploiements natifs, Capgo Intégrations pour le flux de travail du produit dans Capgo Intégrations, Intégration CI/CD pour les détails d'implémentation dans Intégration CI/CD, et GitHub Intégration d'Actions pour les détails d'implémentation dans GitHub Intégration d'Actions.