⚠️ Configurez d'abord les identifiants iOS
Requis : Vous devez enregistrer vos identifiants iOS avant de compiler.
Compilez et soumettez des applications iOS à TestFlight et à l’App Store en utilisant l’infrastructure Mac dédiée de Capgo.
⚠️ Configurez d'abord les identifiants iOS
Requis : Vous devez enregistrer vos identifiants iOS avant de compiler.
Les builds iOS s’exécutent sur des machines Mac dédiées (Mac minis Scaleway M4) provisionnées à la demande :
Avant de compiler pour iOS, vous avez besoin de :
npx cap open iosVous aurez besoin d’un de ces types de certificats selon votre build :
| Type de build | Certificat requis | Profil de provisionnement |
|---|---|---|
| Development | Apple Development | Profil de développement |
| Ad Hoc | Apple Distribution | Profil Ad Hoc |
| App Store | Apple Distribution | Profil App Store |
Aperçu rapide :
Créer une demande de signature de certificat (CSR)
.certSigningRequestGénérer un certificat dans le portail Apple Developer
.cer)Exporter le certificat en .p12
.cer téléchargé pour l’ajouter à Trousseau.p12 et définissez un mot de passe (sauvegardez ce mot de passe !)Créer un profil de provisionnement
.mobileprovisionPour la soumission automatique à TestFlight, créez une clé API :
.p8 (vous ne pouvez le télécharger qu’une seule fois !)Définissez ces identifiants avant de compiler :
# Signature iOS (requis)BUILD_CERTIFICATE_BASE64="<certificat-p12-encodé-en-base64>"BUILD_PROVISION_PROFILE_BASE64="<mobileprovision-encodé-en-base64>"P12_PASSWORD="<mot-de-passe-du-certificat>"
# API App Store Connect (pour la soumission)APPLE_KEY_ID="ABC1234567"APPLE_ISSUER_ID="00000000-0000-0000-0000-000000000000"APPLE_KEY_CONTENT="<clé-p8-encodée-en-base64>"
# Configuration supplémentaireAPP_STORE_CONNECT_TEAM_ID="1234567890"APPLE_PROFILE_NAME="App Store com.example.app"Certificat (.p12) :
base64 -i YourCertificate.p12 | pbcopyProfil de provisionnement (.mobileprovision) :
base64 -i YourProfile.mobileprovision | pbcopyClé App Store Connect (.p8) :
base64 -i AuthKey_ABC1234567.p8 | pbcopyLa chaîne base64 est maintenant dans votre presse-papiers - collez-la dans votre variable d’environnement ou vos secrets CI/CD.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode debugCela crée un build de développement qui peut être installé sur les appareils enregistrés.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode releaseCela crée un build App Store et soumet automatiquement à TestFlight si vous avez configuré les identifiants de l’API App Store Connect.
name: Build iOS App
on: push: branches: [main]
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v6
- name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '24'
- name: Install dependencies run: npm ci
- name: Build web assets run: npm run build
- name: Sync Capacitor run: npx cap sync ios
- name: Build iOS app env: CAPGO_TOKEN: ${{ secrets.CAPGO_TOKEN }} BUILD_CERTIFICATE_BASE64: ${{ secrets.IOS_CERTIFICATE }} BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.IOS_PROVISION_PROFILE }} 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.TEAM_ID }} run: | npx @capgo/cli@latest build ${{ secrets.APP_ID }} \ --platform ios \ --build-mode releaseProvisionnement de la machine (1-2 minutes)
Isolation utilisateur (~10 secondes)
job-<jobId>/Users/job-<jobId>Configuration du projet (~30 secondes)
Build Fastlane (3-8 minutes)
Soumission à l’App Store (1-2 minutes, si configurée)
Nettoyage (immédiat)
Renvoi de la machine (après 24 heures)
Notre environnement de build iOS inclut :
Temps de build iOS typiques :
| Type de build | Premier build | Builds suivants* |
|---|---|---|
| Debug | 5-7 minutes | 4-6 minutes |
| Release | 7-10 minutes | 5-8 minutes |
*Les builds suivants peuvent être plus rapides si la même machine est réutilisée dans la fenêtre de 24 heures.
“Échec de la signature du code”
“Le profil de provisionnement n’inclut pas le certificat de signature”
“Échec de l’authentification App Store Connect”
“Timeout du build après 10 minutes”
Tous les logs de build sont diffusés en temps réel. Surveillez ces phases clés :
✔ Machine assignée : m-abc123→ Création de l'utilisateur : job-abc123→ Installation des dépendances CocoaPods...→ Compilation de l'application iOS...→ Signature du code avec le certificat...→ Téléversement vers App Store Connect...✔ Build réussiSi un build échoue, l’erreur sera clairement affichée dans les logs avec le message d’erreur spécifique Fastlane/Xcode.
Assurez-vous toujours que votre build iOS fonctionne localement avant d’utiliser le build cloud :
npx cap open ios# Compiler dans XcodeNe committez jamais les certificats ou clés dans votre dépôt. Utilisez toujours :
Pour des builds plus rapides, assurez-vous que votre package.json et Podfile.lock sont commités dans le contrôle de version.
Gardez un œil sur la durée de build pour optimiser les coûts :
# Le CLI affiche le temps de build à la finBuild réussi en 6m 42s (13,4 minutes de facturation au taux 2×)