Passer au contenu

Gérer les 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, elles vivent dans un fichier global , partagé avec tous vos projets. Passer ~/.capgo-credentials/credentials.jsonà les conserver --local à les conserver par projet dans .capgo-credentials.json au lieu de. 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 informations d'identification de manière interactive

Section intitulée « Gérer les informations d'identification de manière interactive »

La manière la plus rapide de travailler avec vos informations d'identification enregistrées est le gestionnaire interactif. Il ouvre une interface de ligne de commande (TUI) (la même que celle utilisée) où vous pouvez parcourir ce qui est stocké, voir ce qui est configuré par application et plateforme, exporter un fichier prêt à l'emploi pour la CI/CD, ou supprimer les informations d'identification d'une plateforme : build init Fenêtre de terminal .env Copier dans le presse-papier

✅ Supprimé automatiquement après la fin de la construction
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 les fichiers par projet .capgo-credentials.json au lieu du fichier global

Préférez des commandes scriptables et à exécution unique ? Utilisez les commandes individuelles ci-dessous.

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 partiellement les informations d'identification existantes sans les fournir à nouveau intégralement :

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

Le update commande utilise une fusion additive pour les profils de provisionnement — les nouveaux profils sont fusionnés avec les anciens. Pour remplacer la carte de provisionnement entière au lieu de cela, 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 d'actualisation accepte les mêmes options que save mais toutes sont facultatives — seuls les champs que vous fournissez sont mis à jour.

Afficher les identifiants 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 identifiants enregistrés de votre machine locale :

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 anciennes BUILD_PROVISION_PROFILE_BASE64 informations d'identification, les convertit en CAPGO_IOS_PROVISIONING_MAPet supprime les clés héritées. Voir Migration d'un profil unique 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>Mappage du profil de provisionnement (bundleId=pathRépétable pour les applications multi-cibles. Si seul un profil et sans préfixe bundleId, CLI se déduit automatiquement 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>App Store Connect API ID de cléVoir la note¹
--apple-issuer-id <id>App Store Connect API ID émetteur (UUID)Voir la note¹
--apple-team-id <id>ID d'équipe App Store ConnectOui
--apple-id <email>Adresse e-mail Apple ID pour l'upload de mot de passe d'application (alternative au API clé)Voir la note²
--apple-app-specific-password <password>Mot de passe d'application («xxxx-xxxx-xxxx-xxxx)Voir la note²
--apple-app-id <id>ID numérique de l'application App Store Connect (par exemple 1234567890)Voir la note²
--ios-distribution <mode>Mode de distribution : app_store ou ad_hocNon
--output-uploadActiver un lien de téléchargement temporaire Capgo pour l'artifact de buildNon (par défaut : false)
--output-retention <seconds>Combien de temps conserver les sorties de build (par exemple 3600s)Non (par défaut : 3600s)
--skip-build-number-bumpIgnorer l'incrémentation automatique du numéro de buildNon

Lorsque vous enregistrez les informations de connexion iOS, le CLI :

  1. Lecture des fichiers de certificat et de profil de provisionnement
  2. Les convertit en codage base64
  3. Enregistre-les dans ~/.capgo-credentials/credentials.json ou .capgo-credentials.json avec --local)
  4. Stocke les mots de passe et les identifiants sous forme de texte brut (seulement des fichiers locaux)

La structure de fichier stockée :

{
"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
OptionDescriptionObligatoire
--keystore <path>Chemin vers le fichier .keystore ou .jksOui (version de production)
--keystore-alias <alias>Alias de clé dans le coffre-fortOui (version de production)
--keystore-key-password <password>Mot de passe pour l'alias de cléOui (version de production)
--keystore-store-password <password>Mot de passe pour le coffre-fortOui (version de production)
--play-config <path>Chemin vers le fichier JSON du compte de service Google Play StoreOui (soumission)

Lorsque vous sauvegardez les informations de connexion Android, le CLI:

  1. Lis les fichiers de clé de stockage et de compte de service JSON
  2. Les convertit en codage base64
  3. Les enregistre dans ~/.capgo-credentials/credentials.json ou .capgo-credentials.json avec --local)
  4. Enregistre les mots de passe et les alias sous forme de texte clair (seulement des fichiers locaux)

La structure du fichier stocké :

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

En utilisant les informations de connexion sauvegardées

Section intitulée « En utilisant les informations de connexion sauvegardées »

Une fois que vous avez enregistré vos informations de connexion, elles sont automatiquement utilisées lors de la construction :

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

Vous pouvez également surcharger les informations d'identification enregistrées à l'aide de variables d'environnement :

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

Section intitulée « Afficher les informations d'identification enregistrées »

Liste des informations d'identification que vous avez enregistrées :

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

Sortie d'exemple :

📋 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. N'ajoutez jamais les informations d'identification

    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. Credentials séparées

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

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

Sous-titre « Exporter un fichier .env prêt à l'emploi (recommandé) »

Au lieu de coder chaque fichier de clé par base64 à la main (voir ci-dessous), laissez build credentials manage générer le fichier pour vous :

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

Il écrit un fichier (permissions .env.capgo.<appId>.<platform> ) contenant toutes les clés enregistrées sous forme de variable d'environnement — chaque ligne est une secret à ajouter à votre fournisseur CI/CD. Les deux plateformes sont combinées par défaut ; ajoutez 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 ou --platform android à le restreindre à un.

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

Sous-titre « Référence complète des variables d'environnement »

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

Informations d'identification iOS :

VariableDescriptionFormatRequis
BUILD_CERTIFICATE_BASE64Certificat P12/PKCS12 pour la signature de codeBase64Oui (version de production)
CAPGO_IOS_PROVISIONING_MAPCarte JSON des identifiants de bundle vers les données de profil de provisionnementChaîne JSONOui (version de production)
P12_PASSWORDMot de passe pour le certificat P12Texte en clairFacultatif
APPLE_KEY_IDClé ID de API d'App Store ConnectChaîne de caractères (par exemple, « ABC1234567 »)Voir la note¹
APPLE_ISSUER_IDIdentifiant émetteur App Store Connect APIChaîne de UUIDVoir la note¹
APPLE_KEY_CONTENTClé App Store Connect API (.fichier p8 contenu)Base64Voir la note¹
APP_STORE_CONNECT_TEAM_IDID d'équipe Apple DeveloperChaîne de caractères (par exemple, « XXXXXXXXXX »)Oui
CAPGO_IOS_DISTRIBUTIONMode de distribution : app_store (par défaut) ou ad_hocChaîneNon

Clés Android :

VariableDescriptionFormatObligatoire
ANDROID_KEYSTORE_FILEFichier de clés pour signer APK/AABBase64Oui (version de production)
KEYSTORE_KEY_ALIASAlias de clé au sein du fichier de clésChaîne de caractèresOui (version de sortie)
KEYSTORE_KEY_PASSWORDMot de passe pour l'alias de la cléTexte en clairOui*
KEYSTORE_STORE_PASSWORDMot de passe pour le fichier de clé sécuriséeTexte en clairOui*
PLAY_CONFIG_JSONCompte JSON 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 credenciaux 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. iOSGénérer de nouvelles certificats et des clés API chaque année
  2. AndroidChanger les mots de passe des clés de stockage annuellement
  3. Après les changements d'équipeRoter lorsque les membres de l'équipe quittent

Mettre à jour les 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 intitulée “”Aucun mot de passe trouvé”””

Si la construction indique que pas de mot de passe ont été trouvés :

  1. Vérifiez si les mots de passe sont sauvegardés:

    Fenêtre de terminal
    bunx @capgo/cli@latest build credentials list
  2. Sauvegarder les mots de passe si ils manquent:

    Fenêtre de terminal
    bunx @capgo/cli@latest build credentials save --platform ios ...
  3. Vérifiez que le fichier de mots de passe existe:

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

Fixez les permissions du fichier :

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

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

Effacer et réenregistrer les informations d'identification

Section intitulé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 d'identification sauvegardé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 vers les fichiers originaux (si nécessaire) Fenêtre de terminal

    Copier dans le presse-papier
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. Enregistrer à l'aide du 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_BASE64Fenêtre de terminal

    Copier dans le presse-papier
    bunx @capgo/cli@latest build credentials migrate --platform ios

    et supprime les anciens CAPGO_IOS_PROVISIONING_MAP et BUILD_PROVISION_PROFILE_BASE64 clés. APPLE_PROFILE_NAME Tester la construction

  4. Fenêtre de terminal

    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 informations d'identification sont stockées dans un seul fichier JSON :

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

Le fichier est créé automatiquement la première fois que vous enregistrez des informations d'identification. Ajoutez .capgo-credentials.json à votre .gitignore afin que les informations d'identification par projet ne soient jamais commitées.

Continuez à partir de la gestion des identifiants

Section intitulée « Continuez à partir de la gestion des identifiants »

Si vous utilisez Gestion des identifiants pour planifier l'automatisation CI/CD, connectez-l’avec Capgo CI/CD pour le flux de workflow du produit dans Capgo CI/CD, Capgo Builds natifs pour le flux de workflow du produit dans Capgo Builds natifs, Capgo Intégrations pour le flux de workflow 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 Actions Integration.