Distribuzione Continua per iOS utilizzando Codemagic
Requisiti
Prima di continuare con la guida…
- La registrazione al programma di sviluppatore iOS.
- Desiderio di leggere 😆…
Importante per il prezzo

Il servizio è ‘gratuito’ fino a 500 minuti macOS M1 al mese, a seconda della macchina scelta.
Stiamo utilizzando una macchina macOS M1 puoi vedere nello screenshot il suo prezzo e limiti (prezzi validi alla creazione del tutorial, potrebbero subire modifiche in futuro)
🔴 Una volta avvertiti dei requisiti e dei prezzi, se ti piace, continuiamo…
📣 Nel post supponiamo di avere l'app creata in iTunes connect, abbiamo i certificati dell'ecosistema Apple, tutto sarà configurato da Codemagic!
Scendiamo in acqua 🤿
Passaggi da seguire nel post
- Utilizzare App Store Connect API con Codemagic
- Requisiti
- Creazione di una chiave App Store Connect API
- Utilizzare una chiave App Store Connect API
- Copia i file Fastlane
- Configura Codemagic
1. Utilizzare App Store Connect API con Codemagic
A partire da febbraio 2021, l'autenticazione a due fattori o la verifica a due passaggi è richiesta per tutti gli utenti per accedere a App Store Connect. Questo strato aggiuntivo di sicurezza per il tuo ID Apple aiuta a garantire che tu sia l'unica persona che può accedere al tuo account.
Da Supporto Apple
Per iniziare con match è necessario revocare i certificati esistenti. Ma non preoccuparti, avrai il nuovo uno direttamente.
Requisiti
Per poter utilizzare App Store Connect API, Codemagic ha bisogno di tre ID. emittente.
- ID. chiave.
- File di chiave o contenuto di chiave.
- Creazione di una chiave App Store Connect __CAPGO_KEEP_0__
Creating an App Store Connect API Key
1 — Accedi a
App Store Connect 2 — Clicca su "Certificati di sviluppatore" e seleziona "Genera chiave"..
2 — Scegli Utenti e Accesso.

3 — Scegli la scheda API Chiavi.

4 — Clicca su Genera API Chiave o sul pulsante Aggiungi (+).

5 — Inserisci il nome per la chiave e seleziona un livello di accesso. Consigliamo di scegliere App Manager i diritti di accesso, leggi di più sulle autorizzazioni del ruolo del programma Apple Developer qui

6 — Clicca su Genera.
Una chiave API non può avere accesso limitato a specifiche app.
Il nome della nuova chiave, l'ID chiave, un link di download e altre informazioni vengono visualizzati sulla pagina.

Ecco dove trovare tutte e tre le informazioni necessarie:
1. ID della richiesta.
2. ID chiave.
3. Clicca su "Download API Chiave" per scaricare la tua API chiave privata. Il link di download compare solo se la chiave privata non è stata ancora scaricata. Apple non conserva una copia della chiave privata. Quindi, puoi scaricarla solo una volta.
🔴 Mantieni la tua chiave privata in un luogo sicuro. Non condividere mai le tue chiavi, archiviale le chiavi in un code repository o includile nei code client-side.
Aggiungere la chiave API di App Store Connect a Codemagic
-
Apri le impostazioni del tuo team di Codemagic.
Seleziona le identità di firma code
E caricare il certificato

-
Clicca il Aggiungi chiave tasto.
-
Inserisci il
App Store Connect API key name. Questo è un nome leggibile da uomo per la chiave che verrà utilizzato per fare riferimento alla chiave in seguito nei impostazioni dell'applicazione. -
Inserisci il
Issuer IDeKey IDvalori. -
Clicca su Scegli un file .p8 o trascina il file per caricare la chiave App Store Connect API scaricata precedentemente.
-
Clicca Salva.
Ora possiamo gestire Codemagic con la chiave App Store Connect API, fantastico!
2. Crea certificati e profili di provisioning
Certificati
Apri XCode e vai a Impostazioni > Conti > ID Apple > Team e seleziona il tuo team.

Clicca su Gestisci certificati > + e seleziona Distribuzione Apple.

Poi puoi creare un nuovo certificato.
Poi devi andare a keychain per scaricare il certificato come un .p12 file.
Per farlo, devi andare a keychain e passare alla login chiave e poi la scheda I miei Certificati.

Poi potrai selezionare il certificato che desideri scaricare. (Cerca per la data del certificato)
E poi fare clic destro sul certificato e selezionare Esporta.
Scegli il formato del file Scambio di informazioni personali (.p12).
Ciò scaricherà il certificato come un .p12 file.
Profilo di provisioning
Apri Apple Developer e seleziona il team giusto.
Crea quindi un nuovo profilo, cliccando su +

E seleziona App Store Connect.

Poi devi selezionare l'app giusta, attenzione non puoi utilizzare wildcard altrimenti la firma fallirà.

Seleziona il certificato giusto che hai creato prima (guarda la data di scadenza dovrebbe essere lo stesso giorno e mese di oggi) e clicca su Continua.

Infine, inserisci il nome del profilo e clicca su Genera.
Il nome verrà utilizzato per identificare il profilo in Codemagic.

Puoi scaricare il profilo come .mobileprovision file.

Aggiungi il certificato di firma Code
Codemagic ti consente di caricare i certificati di firma code come archivi PKCS#12 che contengono sia il certificato che la chiave privata necessari per utilizzarlo. Quando si carica, Codemagic ti chiederà di fornire la password del certificato (se il certificato è protetto da password) insieme a un nome di riferimento univoco , che può essere poi utilizzato nellaconfigurazione per recuperare il file specifico. codemagic.yaml configuration
- Carica il certificato
- Genera un nuovo certificato
- Estrai dal portale per sviluppatori
- Apri le impostazioni del tuo Codemagic Team, vai a impostazioni di codemagic.yaml > Code identità di firma.
- Apri certificati iOS seleziona la scheda.
- Carica il file del certificato cliccando su Scegli un file .p12 o .pem o trascinalo nella finestra indicata.
- Inserisci il Password del certificato e scegli un Nome di riferimento.
- Clicca Aggiungi certificato
Aggiunta del profilo di provisioning
Codemagic consente di caricare un profilo di provisioning da utilizzare per l'applicazione o di recuperare un profilo dal Portale dello Sviluppatore Apple.
The profile’s type, team, bundle id, and expiration date are displayed for each profile added to Code signing identities. Furthermore, Codemagic will let you know whether a matching code signing certificate is available in Code signing identities (a green checkmark in the Inoltre, Codemagic ti informerà se è disponibile un certificato di firma di __CAPGO_KEEP_1__ corrispondente in __CAPGO_KEEP_2__ identità di firma (un segno di spunta verde nel Certificato
campo) o meno.
Configura i segreti di Codemagic
Ever wonder dove i valori di ENV provengono? Bene, non è più un segreto – provengono dal tuo progetto segreto.
4. Configura il file di flusso di Codemagic
Crea un file denominato codemagic.yml alla radice del tuo progetto e aggiungi il seguente.
workflows:
ionic-capacitor-ios-workflow:
name: Capacitor iOS Workflow
max_build_duration: 120
instance_type: mac_mini_m1
integrations:
app_store_connect: CodeMagic
environment:
ios_signing:
distribution_type: app_store
bundle_identifier: YOUR_BUNDLE_IDENTIFIER
vars:
XCODE_WORKSPACE: ios/App/App.xcworkspace
XCODE_SCHEME: App
APP_STORE_APP_ID: YOUR_APP_STORE_APP_ID
node: v20.14.0
xcode: 15.4
cocoapods: default
triggering:
events:
- tag
tag_patterns:
- pattern: '*'
include: true
scripts:
- name: Install dependencies
script: |
npm install
- name: Cocoapods installation
script: |
cd ios/App && pod install
- name: Update dependencies and copy web assets to native project
script: |
npm run build
npx cap sync ios
- name: Set up code signing settings on Xcode project
script: |
xcode-project use-profiles
- name: Increment build number
script: |
cd $CM_BUILD_DIR/ios/App
LATEST_BUILD_NUMBER=$(app-store-connect get-latest-app-store-build-number "$APP_ID")
agvtool new-version -all $(($LATEST_BUILD_NUMBER + 1))
- name: Build ipa for distribution
script: |
xcode-project build-ipa \
--workspace "$XCODE_WORKSPACE" \
--scheme "$XCODE_SCHEME"
artifacts:
- build/ios/ipa/*.ipa
- /tmp/xcodebuild_logs/*.log
- $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.app
- $HOME/Library/Developer/Xcode/DerivedData/**/Build/**/*.dSYM
publishing:
email:
recipients:
- YOUR_EMAIL
notify:
success: true # To not receive a notification when a build succeeds
failure: false # To not receive a notification when a build fails
app_store_connect:
auth: integration
# Configuration related to TestFlight (optional)
# Note: This action is performed during post-processing.
submit_to_testflight: true
# Configuration related to App Store (optional)
# Note: This action is performed during post-processing.
submit_to_app_store: false
This workflow should be triggered manually or after each GitHub tag, se hai bisogno di automatizzare il tag, si prega di fare riferimento a Automatic build and release with GitHub actions in primo luogo.
Quindi questo flusso preleverà le dipendenze NodeJS, le installerà e costruirà il tuo'applicazione JavaScript.
Ogni volta che invii un nuovo tag, verrà costruito un rilascio in TestFlight.
La tua App non deve utilizzare Ionic, solo la base Capacitor è obbligatoria, può avere vecchi moduli di Cordova, ma il plugin Capacitor JS dovrebbe essere preferito.
5. Attiva il workflow
Attiva il workflow
Pubblica i nuovi commit sul ramo main o development per attivare il workflow.

Dopo pochi minuti, il build dovrebbe essere disponibile nel tuo dashboard App Store Connect.

Avvia manualmente
Puoi avviare il workflow manualmente.
Prima seleziona l'app che vuoi costruire, poi clicca su Avvia nuova costruzione.

Poi seleziona il ramo che vuoi costruire.

E clicca su Avvia nuova costruzione.
Poi vai alla lista delle costruzioni

E clicca sulle costruzioni per vedere i risultati.

Puoi distribuire dal computer locale
Sì, puoi farlo, e non è affatto difficile.
Puoi utilizzare Xcode per costruire e firmare il tuo app, come sempre.
Grazie
Questo blog si basa sui seguenti articoli: