Distribuzione Continua per iOS utilizzando Codemagic
Requisiti
Prima di continuare con il tutorial…
- Membresia del programma di sviluppatore iOS.
- Desiderio di leggere 😆…
Informazioni importanti sul prezzo

Il servizio è ‘gratuito’ fino a 500 minuti di macOS M1 al mese /, a seconda della macchina scelta.
Stiamo utilizzando una macOS M1 macchina, potete vedere nel screenshot il suo prezzo e i limiti (prezzi validi alla creazione del tutorial, potrebbero subire cambiamenti in futuro)
🔴 Una volta avvertiti dei requisiti e dei prezzi, se lo desiderate, continuiamo…
📣 Nel post supponiamo di avere l'app creata in iTunes connect, abbiamo effettivamente le certificazioni dell'ecosistema Apple, tutto sarà configurato da Codemagic!
Vediamo di approfondire 🤿
Passaggi da seguire nel post
- Usando App Store Connect API con Codemagic
- Requisiti
- Creazione di una chiave App Store Connect API
- Utilizzo di una chiave App Store Connect API
- Copia dei file Fastlane
- Configurazione di Codemagic
1. Usando 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
To poter utilizzare App Store Connect API, Codemagic ha bisogno di tre cose.
- ID rilasciatore.
- ID chiave.
- File chiave o contenuto della chiave.
Creazione di una chiave App Store Connect API
Per generare le chiavi, è necessario avere la permessso di amministratore in App Store Connect. Se non si ha quel permesso, si può indirizzare la persona competente a questo articolo e seguire le istruzioni seguenti.
1 — Accedi a App Store Connect.
2 — Seleziona Utenti e accesso.

3 — Seleziona 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 sviluppatore Apple qui

6 — Clicca su Genera.
Non è possibile limitare l'accesso di una chiave API a specifiche app.
Il nome della nuova chiave, l'ID della chiave, un link di download e altre informazioni vengono visualizzati sulla pagina.

Raccogli tutte le informazioni necessarie qui:
1. ID della richiesta.
2. ID della chiave.
3. Clicca su "Scarica 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.
🔴 Conserva la tua chiave privata in un luogo sicuro. Non dovresti mai condividere le tue chiavi, conservare le chiavi in un code repository o includere le chiavi nel codice client-side code.
Aggiungere la chiave API di App Store Connect a Codemagic
-
Apre le impostazioni del tuo team 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 nelle 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 in precedenza.
-
Click Salva.
Ora possiamo gestire Codemagic con la chiave App Store Connect API, fantastico!
2. Crea certificati e profili di provisioning
Certificati
Apre XCode e vai a Impostazioni > Conti > ID Apple > Team e seleziona il tuo team.

Click su Gestisci certificati > + e seleziona Distribuzione Apple.

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

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

E selezionare 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 (cerca 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.
The name will be used to identify the profile in Codemagic.

Potrai scaricare il profilo come un .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 potrai poi utilizzare nellaconfigurazione per recuperare il file specifico. codemagic.yaml Carica certificato
- Genera nuovo certificato
- Nome di riferimento
- Estrarre da Developer Portal
- Apre le impostazioni del tuo team Codemagic, vai a impostazioni codemagic.yaml > identità di firma Code.
- Apre certificati iOS tab.
- Inserisci il file del certificato cliccando su Scegli un file .p12 o .pem o trascinando il file nell'area indicata.
- Inserisci il Password del certificato e scegli 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.
Il tipo di profilo, il team, l'ID bundle e la data di scadenza sono visualizzati per ogni profilo aggiunto alle identità di firma di Code. Inoltre, Codemagic ti informerà se è disponibile un certificato di firma di code corrispondente nelle identità di firma di Code (un segno di spunta verde nel campo) o meno. 3. Configura Codemagic Configura i segreti di Codemagic
Ever wonder dove sono i valori dei
valori dei
valori dei ENV Da dove provengono? Beh, non è più un segreto – provengono dal tuo progetto segreto. 🤦
4. Configura il file di flusso Codemagic
Creare 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
Questo flusso dovrebbe essere attivato manualmente o dopo ogni GitHub etichetta, se hai bisogno di automatizzare l'etichetta, si prega di fare riferimento a L'invio automatico di costruzione e rilascio con GitHub azioni per primo.
Poi questo flusso preleverà i tuoi dipendenze NodeJS, li installerà e costruirà il tuo'applicazione JavaScript.
Ogni volta che invii una nuova etichetta, verrà costruito un rilascio in TestFlight.
La tua App non deve utilizzare Ionic, è sufficiente che abbia la base Capacitor obbligatoria, può avere vecchi moduli Cordova, ma è preferibile il plugin Capacitor JS.
5. Attiva il workflow
Attiva il workflow
Inserisci i nuovi commit nella branca 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.
Scegli per primo l'app che desideri costruire, quindi clicca su Avvia nuova costruzione.

Poi seleziona la branca che desideri costruire.

E clicca su Avvia nuovo build.
Poi vai alla lista dei build

E clicca sul build per vedere il risultato.

Si può distribuire dal macchina locale
Sì, puoi farlo e non è faticoso.
Puoi utilizzare Xcode per costruire e firmare il tuo app, come sempre.
Grazie
Questo blog si basa sui seguenti articoli:
- Distribuzione continua per IOS utilizzando Codemagic e GitHub azioni
- Documentazione di Codemagic
- Questo GitHub messaggio da @mrogunlana
Continua a procedere da Automatic Capacitor build IOS con Codemagic
Se stai utilizzando Automatic Capacitor build IOS con Codemagic per pianificare l'automazione CI/CD, connettilo con Capgo CI/CD per il workflow del prodotto in Capgo CI/CD, Capgo Build Native per il workflow del prodotto in Capgo Costruzioni native, Capgo Integrazioni per il workflow del prodotto in Capgo Integrazioni, Integrazione CI/CD per il dettaglio di implementazione in Integrazione CI/CD, e GitHub Integrazione delle azioni per il dettaglio di implementazione in GitHub Integrazione delle azioni.