⚠️ Configura Prima le Credenziali iOS
Richiesto: Devi salvare le tue credenziali iOS prima di compilare.
Crea e invia app iOS a TestFlight e all’App Store utilizzando l’infrastruttura Mac dedicata di Capgo.
⚠️ Configura Prima le Credenziali iOS
Richiesto: Devi salvare le tue credenziali iOS prima di compilare.
Le build iOS vengono eseguite su Mac mini dedicati (Scaleway Mac mini M4) forniti on-demand:
Prima di compilare per iOS, hai bisogno di:
npx cap open iosTi servirà uno di questi tipi di certificato a seconda della tua build:
| Tipo di Build | Certificato Richiesto | Profilo di Provisioning |
|---|---|---|
| Development | Apple Development | Profilo Development |
| Ad Hoc | Apple Distribution | Profilo Ad Hoc |
| App Store | Apple Distribution | Profilo App Store |
Panoramica Rapida:
Crea una Richiesta di Firma del Certificato (CSR)
.certSigningRequestGenera Certificato nel Portale Apple Developer
.cer)Esporta Certificato come .p12
.cer scaricato per aggiungerlo al Portachiavi.p12 e imposta una password (salva questa password!)Crea Profilo di Provisioning
.mobileprovisionPer l’invio automatico a TestFlight, crea una chiave API:
.p8 (puoi scaricarlo solo una volta!)Imposta queste credenziali prima della build:
# Firma iOS (Richiesto)BUILD_CERTIFICATE_BASE64="<certificato-p12-codificato-base64>"BUILD_PROVISION_PROFILE_BASE64="<mobileprovision-codificato-base64>"P12_PASSWORD="<password-certificato>"
# API App Store Connect (per l'invio)APPLE_KEY_ID="ABC1234567"APPLE_ISSUER_ID="00000000-0000-0000-0000-000000000000"APPLE_KEY_CONTENT="<chiave-p8-codificata-base64>"
# Configurazione AggiuntivaAPP_STORE_CONNECT_TEAM_ID="1234567890"APPLE_PROFILE_NAME="App Store com.example.app"Certificato (.p12):
base64 -i YourCertificate.p12 | pbcopyProfilo di Provisioning (.mobileprovision):
base64 -i YourProfile.mobileprovision | pbcopyChiave App Store Connect (.p8):
base64 -i AuthKey_ABC1234567.p8 | pbcopyLa stringa base64 è ora negli appunti - incollala nella tua variabile d’ambiente o nei segreti CI/CD.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode debugQuesto crea una build di sviluppo che può essere installata su dispositivi registrati.
npx @capgo/cli@latest build com.example.app \ --platform ios \ --build-mode releaseQuesto crea una build App Store e invia automaticamente a TestFlight se hai configurato le credenziali 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 releaseProvisioning Macchina (1-2 minuti)
Isolamento Utente (~10 secondi)
job-<jobId>/Users/job-<jobId>Configurazione Progetto (~30 secondi)
Build Fastlane (3-8 minuti)
Invio App Store (1-2 minuti, se configurato)
Pulizia (immediata)
Rilascio Macchina (dopo 24 ore)
Il nostro ambiente di build iOS include:
Tempi tipici di build iOS:
| Tipo di Build | Prima Build | Build Successive* |
|---|---|---|
| Debug | 5-7 minuti | 4-6 minuti |
| Release | 7-10 minuti | 5-8 minuti |
*Le build successive potrebbero essere più veloci se la stessa macchina viene riutilizzata entro la finestra di 24 ore.
“Firma del codice fallita”
“Il profilo di provisioning non include il certificato di firma”
“Autenticazione App Store Connect fallita”
“Timeout build dopo 10 minuti”
Tutti i log di build vengono trasmessi in tempo reale. Cerca queste fasi chiave:
✔ Macchina assegnata: m-abc123→ Creazione utente: job-abc123→ Installazione dipendenze CocoaPods...→ Build app iOS...→ Firma del codice con certificato...→ Caricamento su App Store Connect...✔ Build riuscitaSe una build fallisce, l’errore verrà mostrato chiaramente nei log con il messaggio di errore specifico di Fastlane/Xcode.
Assicurati sempre che la tua build iOS funzioni localmente prima di usare cloud build:
npx cap open ios# Compila in XcodeNon eseguire mai il commit di certificati o chiavi nel tuo repository. Usa sempre:
Per build più veloci, assicurati che package.json e Podfile.lock siano committati nel controllo versione.
Tieni d’occhio la durata della build per ottimizzare i costi:
# Il CLI mostra il tempo di build alla fineBuild riuscita in 6m 42s (13.4 minuti di fatturazione a tariffa 2×)