Passer au contenu

Gérez vos informations d’identification de build iOS et Android localement pour des builds cloud pratiques.

Capgo CLI vous permet d’enregistrer les informations d’identification de build localement sur votre ordinateur dans le dossier .capgo-credentials. Lorsque vous exécutez une build, ces informations d’identification sont automatiquement utilisées et envoyées en toute sécurité aux serveurs de build de Capgo.

Enregistrer les informations d’identification

Section titled “Enregistrer les informations d’identification”

Stockez vos informations d’identification de build localement pour une utilisation automatique :

Terminal window
npx @capgo/cli build credentials save --platform <ios|android> [options]

Mettre à jour les informations d’identification

Section titled “Mettre à jour les informations d’identification”

Mettez à jour partiellement les informations d’identification existantes sans tout fournir à nouveau :

Terminal window
npx @capgo/cli build credentials update --platform <ios|android> [options]

La commande update utilise une fusion additive pour les profils de provisionnement : les nouveaux profils sont fusionnés avec les profils existants. Pour remplacer l’intégralité de la carte de provisionnement, ajoutez --overwrite-ios-provisioning-map.

Exemple : ajoutez un profil d’extension aux informations d’identification existantes :

Terminal window
npx @capgo/cli build credentials update \
--platform ios \
--ios-provisioning-profile "com.example.app.widget=./widget_profile.mobileprovision"

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

Répertorier les informations d’identification

Section titled “Répertorier les informations d’identification”

Afficher les informations d’identification actuellement enregistrées (les mots de passe sont masqués) :

Terminal window
npx @capgo/cli build credentials list
# List credentials for a specific app
npx @capgo/cli build credentials list --appId com.example.app

Effacer les informations d’identification

Section titled “Effacer les informations d’identification”

Supprimez les informations d’identification enregistrées de votre ordinateur local :

Terminal window
# Clear all credentials
npx @capgo/cli build credentials clear
# Clear credentials for a specific app + platform
npx @capgo/cli build credentials clear --appId com.example.app --platform ios

Migrer les informations d’identification

Section titled “Migrer les informations d’identification”

Convertissez l’ancien format à profil unique en le nouveau format multi-cible :

Terminal window
npx @capgo/cli build credentials migrate --platform ios

La commande migrate détecte les anciennes informations d’identification BUILD_PROVISION_PROFILE_BASE64, les convertit en CAPGO_IOS_PROVISIONING_MAP et supprime les clés héritées. Voir Migration à partir d’un profil unique pour plus de détails.

Enregistrement des informations d’identification iOS

Section titled “Enregistrement des informations d’identification iOS”
Terminal window
npx @capgo/cli 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"

iOS Options| Options | Descriptif | Obligatoire |

Section titled “iOS Options| Options | Descriptif | Obligatoire |”

|--------|-------------|--------------| | --certificate <path> | Chemin d’accès au fichier de certificat .p12 | Oui (version) | | --p12-password <password> | Mot de passe du certificat .p12 | Oui (version) | | --ios-provisioning-profile <mapping> | Mappage du profil de provisionnement (bundleId=path). Répétable pour les applications multi-cibles. S’il n’y a qu’un seul profil et aucun préfixe bundleId, CLI déduit automatiquement à partir du profil. | Oui (version) | | --apple-key <path> | Chemin vers App Store Connect API Clé .p8 | Voir la remarque¹ | | --apple-key-id <id> | App Store Connect API ID de clé | Voir la remarque¹ | | --apple-issuer-id <id> | App Store Connect API ID de l’émetteur (UUID) | Voir la remarque¹ | | --apple-team-id <id> | App Store Connect ID d’équipe | Oui | | --ios-distribution <mode> | Mode de distribution : app_store (par défaut) ou ad_hoc | Non | | --output-upload | Activer un lien de téléchargement Capgo à durée limitée pour l’artefact de build | Non (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-bump | Ignorer l’incrémentation automatique du numéro de build | Non |

Lorsque vous enregistrez les informations d’identification iOS, le CLI :

  1. Lit les fichiers de certificat et de profil d’approvisionnement
  2. Les convertit en encodage base64
  3. Enregistre les informations d’identification dans le dossier .capgo-credentials
  4. Stocke les mots de passe et les identifiants sous forme de texte brut (fichiers locaux uniquement)

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

Enregistrement des informations d’identification Android

Section titled “Enregistrement des informations d’identification Android”
Terminal window
npx @capgo/cli 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
OptionsDescriptifObligatoire
--keystore <path>Chemin d’accès au fichier .keystore ou .jksOui (version)
--keystore-alias <alias>Alias ​​de clé dans le magasin de clésOui (version)
--keystore-key-password <password>Mot de passe pour l’alias de cléOui (version)
--keystore-store-password <password>Mot de passe pour le magasin de clésOui (version)
--play-config <path>Chemin d’accès au compte de service Play Store JSONOui (soumission)

Lorsque vous enregistrez les informations d’identification Android, le CLI :

  1. Lit les fichiers du magasin de clés et du compte de service JSON
  2. Les convertit en encodage base64
  3. Enregistre les informations d’identification dans le dossier .capgo-credentials
  4. Stocke les mots de passe et les alias sous forme de texte brut (fichiers locaux uniquement)

La structure du fichier stocké :

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

Utilisation des informations d’identification enregistrées

Section titled “Utilisation des informations d’identification enregistrées”

Une fois que vous avez enregistré les informations d’identification, elles sont automatiquement utilisées lors de la création :

Terminal window
# Credentials automatically loaded from .capgo-credentials folder
npx @capgo/cli build com.example.app --platform ios

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

Terminal window
# Environment variables take precedence over saved credentials
BUILD_CERTIFICATE_BASE64="..." \
P12_PASSWORD="different-password" \
npx @capgo/cli build com.example.app --platform ios
```**Ordre de priorité :**
1. Variables d'environnement (priorité la plus élevée)
2. Informations d'identification enregistrées dans le dossier `.capgo-credentials`
3. Aucune information d'identification (priorité la plus basse)
## Affichage des informations d'identification enregistrées
Répertoriez les informations d'identification que vous avez enregistrées :
```bash
npx @capgo/cli 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/
🔒 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 fichiers

    Terminal window
    # Ensure credentials folder is not readable by others
    chmod 700 .capgo-credentials
    chmod 600 .capgo-credentials/*
  2. Ne jamais valider les informations d’identification

    Terminal window
    # Add to .gitignore
    echo ".capgo-credentials/" >> .gitignore
  3. Identifiants séparés

    • Utilisez des informations d’identification différentes pour le développement local par rapport à CI/CD
    • Rotation régulière des informations d’identification
    • Ne partagez pas les informations d’identification entre les membres de l’équipe

Pour les environnements CI/CD, préférez les variables d’environnement aux informations d’identification enregistrées.

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

Section titled “Référence complète des variables d’environnement”

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

iOS Identifiants :

VariablesDescriptifFormaterObligatoire
BUILD_CERTIFICATE_BASE64Certificat P12/PKCS12 pour la signature de codeBase64Oui (version)
CAPGO_IOS_PROVISIONING_MAPJSON mappage des ID de bundle avec les données de profil de provisionnementJSON chaîneOui (version)
P12_PASSWORDMot de passe pour le certificat P12Texte brutFacultatif
APPLE_KEY_IDApp Store Connect API ID de cléChaîne (par exemple, “ABC1234567”)Voir la remarque¹
APPLE_ISSUER_IDApp Store Connect API Identifiant de l’émetteurChaîne UUIDVoir la remarque¹
APPLE_KEY_CONTENTClé App Store Connect API (contenu du fichier .p8)Base64Voir la remarque¹
APP_STORE_CONNECT_TEAM_IDApple ID de l’équipe de développeursChaîne (par exemple, “XXXXXXXXXX”)Oui
CAPGO_IOS_DISTRIBUTIONMode de distribution : app_store (par défaut) ou ad_hocChaîneNon

Android Informations d’identification :

VariablesDescriptifFormaterObligatoire
ANDROID_KEYSTORE_FILEFichier de clés pour signer APK/AABBase64Oui (version)
KEYSTORE_KEY_ALIASAlias ​​de clé dans le magasin de clésChaîneOui (version)
KEYSTORE_KEY_PASSWORDMot de passe pour l’alias de cléTexte brutOui*
KEYSTORE_STORE_PASSWORDMot de passe pour le fichier de clésTexte brutOui*
PLAY_CONFIG_JSONGoogle Play compte de service JSONBase64Oui (soumission)

*Si un seul mot de passe est fourni, il sera utilisé à la fois pour KEYSTORE_KEY_PASSWORD et KEYSTORE_STORE_PASSWORD.

.github/workflows/build.yml
name: Cloud Build
on:
push:
branches: [main]
jobs:
build-ios:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npx @capgo/cli build 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@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npx @capgo/cli build 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 d’informations d’identification en base64 pour les secrets CI/CD :

Terminal window
# 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:
npx @capgo/cli build credentials save --platform ios \
--ios-provisioning-profile "com.example.app=./profile.mobileprovision" \
# ... other options
# Then copy CAPGO_IOS_PROVISIONING_MAP from .capgo-credentials 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 titled “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 dossier d’accréditation sur les coureurs
  • Rotation et contrôle d’accès faciles
  • Pistes d’audit pour une utilisation secrète

Rotation des informations d’identification

Section titled “Rotation des informations d’identification”

Faites régulièrement pivoter vos identifiants :

  1. iOS : Générez de nouveaux certificats et clés API chaque année
  2. Android : modifiez les mots de passe du magasin de clés chaque année
  3. Après les changements d’équipe : effectuez une rotation lorsque les membres de l’équipe partentMettre à jour les identifiants enregistrés :
Terminal window
# Re-run save command with new credentials
npx @capgo/cli build credentials save --platform ios --certificate ./new-cert.p12 ...

Si la version indique qu’aucune information d’identification n’a été trouvée :

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

    Terminal window
    npx @capgo/cli build credentials list
  2. Enregistrez les informations d’identification si elles sont manquantes :

    Terminal window
    npx @capgo/cli build credentials save --platform ios ...
  3. Vérifiez que le dossier d’informations d’identification existe :

    Terminal window
    ls -la .capgo-credentials/

“Autorisation refusée” lors de la lecture des informations d’identification

Section titled ““Autorisation refusée” lors de la lecture des informations d’identification”

Corrigez les autorisations de fichiers :

Terminal window
chmod 700 .capgo-credentials
chmod 600 .capgo-credentials/*

Vérifiez que la bonne plate-forme est spécifiée :

Terminal window
# Make sure --platform matches saved credentials
npx @capgo/cli build com.example.app --platform ios # Uses ios credentials
npx @capgo/cli build com.example.app --platform android # Uses android credentials

Effacer et réenregistrer les informations d’identification

Section titled “Effacer et réenregistrer les informations d’identification”

Si les identifiants semblent corrompus :

Terminal window
# Clear all credentials
npx @capgo/cli build credentials clear
# Save again
npx @capgo/cli build credentials save --platform ios ...

Migration à partir des variables d’environnement

Section titled “Migration à partir des variables d’environnement”

Si vous utilisez actuellement des variables d’environnement, vous pouvez migrer vers les informations d’identification enregistrées :

  1. Extrayez vos variables d’environnement actuelles

    Terminal window
    echo $BUILD_CERTIFICATE_BASE64 # Verify they exist
  2. Décoder les fichiers base64 en fichiers originaux (si nécessaire)

    Terminal window
    echo "$BUILD_CERTIFICATE_BASE64" | base64 -d > cert.p12
    echo "$BUILD_PROVISION_PROFILE_BASE64" | base64 -d > profile.mobileprovision
  3. Enregistrez en utilisant le CLI

    Terminal window
    npx @capgo/cli 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 disposez d’informations d’identification existantes enregistrées dans l’ancien format (unique BUILD_PROVISION_PROFILE_BASE64), exécutez :

    Terminal window
    npx @capgo/cli build credentials migrate --platform ios

    Cela convertit l’ancien profil unique en CAPGO_IOS_PROVISIONING_MAP et supprime les anciennes clés BUILD_PROVISION_PROFILE_BASE64 et APPLE_PROFILE_NAME.

  4. Testez la version

    Terminal window
    npx @capgo/cli build com.example.app --platform ios
  5. Supprimer les variables d’environnement (facultatif)

    Terminal window
    unset BUILD_CERTIFICATE_BASE64 BUILD_PROVISION_PROFILE_BASE64

Les informations d’identification sont stockées dans le dossier .capgo-credentials :

  • macOS/Linux : .capgo-credentials/ (dans la racine de votre projet ou dans le répertoire personnel)
  • Windows : .capgo-credentials\ (dans la racine de votre projet ou dans le répertoire personnel)

Le dossier est automatiquement créé lorsque vous enregistrez les informations d’identification pour la première fois.