Passer à la navigation

Gestion des identifiants

Gérez vos identifiants de construction iOS et Android localement pour des builds cloud pratiques.

Capgo CLI stocke vos identifiants de construction sur votre machine — jamais sur les serveurs de Capgo . Par défaut, ils vivent dans un monde fichier, ~/.capgo-credentials/credentials.jsonpartagé avec tous vos projets. Passer --local pour les conserver par projet in .capgo-credentials.json Lorsque vous exécutez une build, les informations d'identification sauvegardé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

Gestion des Identifiants Interactivement

La méthode la plus rapide pour 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 les commandes par projet .capgo-credentials.json au lieu du fichier global

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

Enregistrer les informations d'identification

Enregistrement des informations d'identification

Enregistrez vos informations de build localement pour un usage 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 fournir à nouveau.

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

Le update commande utilise la fusion additive pour les profils de provisionnement — les nouveaux profils sont fusionnés avec les anciens. --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.

Lister les informations d'identification

Section titled “List Credentials”

Voir les identifiants sauvegardé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

Effacer les informations d'identification

Supprimer les informations d'identification

Remove saved credentials from your local machine:

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

Migrer les informations d’identification

Section titled “Migrate Credentials”

Convertir le format de profil unique ancien 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 Les identifiants, les convertit en CAPGO_IOS_PROVISIONING_MAPet supprime les clés legacy. Migration depuis 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"
OptionDescriptionRequis
--certificate <path>Chemin vers le fichier de certificat .p12Oui (version de production)
--p12-password <password>Mot de passe pour le certificat .p12Oui (version de production)
--ios-provisioning-profile <mapping>Mappage du 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 App Store Connect API Voir la note¹
--apple-key-id <id>ID de clé App Store Connect API Voir la note¹
--apple-issuer-id <id>ID émetteur App Store Connect API (UUID)Voir la note¹
--apple-team-id <id>ID d'équipe App Store Connect Oui
--apple-id <email>Adresse e-mail Apple ID pour l'upload de mot de passe d'application (alternative au API).Voir la note²
--apple-app-specific-password <password>Mot de passe d'application ("xxxx-xxxx-xxxx-xxxx)Voir la note²
--apple-app-id <id>Numeric App Store Connect app ID (e.g. 1234567890)Voir la note²
--ios-distribution <mode>Mode de distribution: app_store (par défaut) 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>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 buildNo

When you save iOS credentials, the CLI:

  1. Lit les fichiers de certificat et de profil de provisioning
  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 du fichier stocké :

{
"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"
}
}

Enregistrer les informations d'identification Android

Enregistrement des identifiants Android
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 service Play StoreOui (soumission)

When you save Android credentials, the CLI:

  1. Lit les fichiers JSON de clé de stockage et de compte de service
  2. Conversion en codage base64
  3. Stockage dans ~/.capgo-credentials/credentials.json ou .capgo-credentials.json with --local)
  4. Stores passwords and alias as plain text (local files only)

Copier dans le presse-papier

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

Utilisation des 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 de connexion enregistrées (~/.capgo-credentials/credentials.jsonou locales .capgo-credentials.json)
  3. Aucune authentification (priorité la plus basse)

Afficher les informations d'authentification enregistrées

Voir les Identifiants Sauvegardés

Listez vos identifiants sauvegardés :

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

Exemple de sortie :

📋 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. Autorisations 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 commettre 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. Informations d'identification séparées

    • Utilisez des identifiants différents pour le développement local vs CI/CD
    • Rotez régulièrement les informations d'identification
    • Don’t share credentials between team members

Pour les environnements CI/CD, préférez les variables d'environnement aux informations de connexion enregistrées.

Section intitulée « Exporter un fichier .env prêt à l'emploi (recommandé) »

Au lieu de coder chaque fichier de clé en base64 manuellement (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 .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 limiter à une seule.

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

Informations d'identification pour iOS :

VariableDescriptionFormatObligatoire
BUILD_CERTIFICATE_BASE64Certificat P12/PKCS12 pour la signature de codeChaîne Base64Oui (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é ID de App Store Connect APIChaîne de caractères (par exemple, « ABC1234567 »)Voir la note¹
APPLE_ISSUER_IDID é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_hocStringNon

Identifiants Android :

VariableDescriptionFormatObligatoire
ANDROID_KEYSTORE_FILEFichier de clé pour signer APK/AABBase64Oui (version de production)
KEYSTORE_KEY_ALIASAlias de clé au sein du coffre-fortChaîneOui (version de production)
KEYSTORE_KEY_PASSWORDMot de passe pour l'alias de cléTexte en clairOui*
KEYSTORE_STORE_PASSWORDMot de passe pour le fichier de coffre-fortTexte en clairOui*
PLAY_CONFIG_JSONGoogle Play service account JSONBase64Oui (soumission)

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

GitHub Actions Example

Exemple d'actions de “GitHub”
Sous-titre « github Exemples d'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 }}

Copier dans le presse-papier

Préparation des valeurs Base64

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 certificats :

  1. iOS : Générez de nouveaux certificats et des clés API annuellement
  2. Android: Change keystore passwords annually
  3. Après les changements d'équipe : Rotez lorsque les membres de l'équipe quittent

Mettez à jour vos certificats enregistrés :

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

Si l'éditeur indique que pas de credenciaux ont été trouvés :

  1. Vérifiez si les credenciaux sont sauvegardés:

    Fenêtre de terminal
    bunx @capgo/cli@latest build credentials list
  2. Sauvegardez les credenciaux si ils 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 crédentials

Section intitulée ““Accès refusé” lors de la lecture des crédentials””

Fixer 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

Sauvegardez et réenregistrez les informations d'identification

Sauvegarde et re-sauvegarde des 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 ...

If you’re currently using environment variables, you can migrate to saved credentials:

  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. Enregistrer à 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 le profil de legacy simple en un CAPGO_IOS_PROVISIONING_MAP et supprime l'ancien BUILD_PROVISION_PROFILE_BASE64 et APPLE_PROFILE_NAME clés.

  4. Testez 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

Lieu du fichier

Emplacement du fichier

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

  • Globale (par défaut) : ~/.capgo-credentials/credentials.json — partagée par tous vos projets
  • Locale (avec --local): .capgo-credentials.json dans votre dossier 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 informations d'identification par projet ne sont jamais commitées.

Continuez de là depuis la gestion des identifiants

Sous-titre « Continuez de là depuis 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 travail du produit dans Capgo CI/CD, Capgo Builds natifs pour le flux de travail du produit dans Capgo Builds 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.