Distribuzione Continua per iOS con Codemagic
Requisiti
Prima di continuare con il tutorial…
- Iscrizione al programma di sviluppo 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 un
Codemagic Action macOS M1 macchina, potete vedere nello screenshot il suo prezzo e le sue limitazioni (prezzi validi alla creazione del tutorial, potrebbero subire cambiamenti in futuro)
🔴 Una volta avvertiti dei requisiti e dei prezzi, se lo desiderate, continuiamo…
📣 In questo post supponiamo di avere già creato l'applicazione in iTunes Connect, abbiamo già le certificazioni dell'ecosistema Apple, tutto sarà configurato da Codemagic!
Vediamo di approfondire…
Passaggi da seguire in questo post
- Utilizzare 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. L'uso di App Store Connect API con Codemagic
Iniziando 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.
Dal Sostegno di 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 Cosa.
- ID emittente.
- ID chiave.
- File di chiave o contenuto di chiave.
Creazione di una chiave App Store Connect API
Per generare le chiavi, è necessario avere il permesso 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 delle 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 diritti di accesso, leggi di più sul ruolo delle autorizzazioni del programma Apple Developer qui

6 — Clicca su Genera.
Un'API chiave non può avere accesso limitato a specifiche app.
Il nome, l'ID chiave e altri dettagli della nuova chiave vengono visualizzati sulla pagina.

Raccogli tutte e tre le informazioni necessarie qui:
<1> ID della richiesta.
<2> ID 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 scaricata ancora. Apple non conserva una copia della chiave privata. Pertanto, puoi scaricarla solo una volta.
🔴 Conserva la tua chiave privata in un luogo sicuro. Non condividere mai le tue chiavi, conserva le chiavi in un code repository o includile nei code client-side.
Aggiungi la chiave App Store Connect API a Codemagic
-
Apri le impostazioni del tuo team Codemagic,
Scegli 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 negli impostazioni dell'applicazione. -
Insertare i
Issuer IDeKey IDi valori. -
Cliccare su Scegliere un file .p8 o trascinare il file per caricare la chiave App Store Connect API scaricata precedentemente.
-
Cliccare Salva.
Ora possiamo gestire Codemagic con la chiave App Store Connect API, fantastico!
2. Creare certificati e profili di provisioning
Certificati
Apre XCode e vai a Impostazioni > Account > ID Apple > Team e seleziona il tuo team.

Clicca su Gestisci certificati > + Scegli e seleziona Distribuzione Apple.

Poi puoi creare un nuovo certificato.
Poi devi andare al keychain per scaricare il certificato come un .p12 file.
Per farlo, devi andare al keychain, passare alla sezione keychain di accesso e poi alla scheda Certificati.

Poi puoi selezionare il certificato che desideri scaricare. (Cerca per la data del certificato)
And poi clicca con il pulsante destro sul certificato e seleziona Esporta.
Scegli il formato del file Informazioni personali di scambio (.p12).
Questo scaricherà il certificato come un .p12 file.
Profili di provisioning
Apre Sviluppatore Apple e seleziona l'insieme giusto.
Poi crea un nuovo profilo, cliccando su +

Scegli App Store Connect.

Seleziona quindi l'app giusta, attenzione, altrimenti non potrai utilizzare wildcard e la firma fallirà.

Scegli 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 sarà utilizzato per identificare il profilo in Codemagic.

Potete scaricare il profilo come un .mobileprovision file.

Aggiungere il certificato di firma Code
Il Codemagic vi 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, il Codemagic vi chiederà di fornire la password del certificato (se il certificato è protetto da password) insieme a un nome di riferimento univoco Nome di riferimento, che potete poi utilizzare nella codemagic.yaml configurazione per recuperare il file specifico.
- Carica certificato
- Genera nuovo certificato
- Recupera dal Portale dello Sviluppatore
- Aprite le impostazioni del vostro team Codemagic, andate a Impostazioni codemagic.yaml > Code identità di firma.
- Apri certificati iOS tabella.
- Carica il file del certificato cliccando su Scegli un file .p12 o .pem o trascinando esso nella finestra indicata.
- Inserisci la Password del certificato e scegli un Nome di riferimento.
- Clicca Aggiungi certificato
Aggiunta del profilo di provisioning
Il profilo di provisioning consente di caricare un profilo di provisioning per l'applicazione o di recuperare un profilo dal Portale dello Sviluppatore Apple.
Per ogni profilo aggiunto alle identità di firma Code, sono visualizzati il tipo di profilo, il team, l'ID bundle e la data di scadenza. Inoltre, Codemagic ti informerà se è disponibile un certificato di firma code corrispondente nelle identità di firma Code (un segno di spunta verde nel campo) o meno. Certificato 3. Configura Codemagic
Configura i segreti di Codemagic
Se ti sei mai chiesto da dove vengono i valori dei segreti di __CAPGO_KEEP_0__, beh, non è più un segreto – vengono dal tuo progetto segreto. 🤦
Configura ENV Aggiungi
4. Configura il file di flusso Codemagic
Creare un file denominato codemagic.yml a 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 etichettase hai bisogno di automatizzare l'etichetta, si prega di fare riferimento a Costruzione automatica e rilascio con GitHub azioni per prima cosa.
Poi questo flusso estrarrà le dipendenze NodeJS, le 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 la base Capacitor , può avere moduli Cordova vecchi, ma è preferibile il plugin JS Capacitor.
5. Attiva il flusso
Attiva il workflow
Pusha i nuovi commit sul ramo main o development oppure

Avviato con commit

Pannello di controllo Testflight
Avvia manualmente
Puoi avviare il workflow manualmente. Scegli prima l'app che desideri costruire, quindi clicca su.

Scegli quindi il ramo che desideri costruire.

E clicca su Inizia una nuova costruzione.
Scegli quindi la lista delle costruzioni.

E clicca sulle costruzioni per visualizzare il risultato.

Si può distribuire dal computer locale.
Sì, puoi farlo e non è affatto difficile.
Potrai utilizzare Xcode per costruire e firmare l'app, come sempre.
Grazie
Questo blog si basa sui seguenti articoli:
- Distribuzione continua per IOS utilizzando Codemagic e azioni GitHub
- Documentazione di Codemagic
- Questo messaggio GitHub 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 nativi per il workflow del prodotto in Capgo Build nativi Capgo Integrazioni per il workflow del prodotto in Capgo Integrazioni Integrazione CI/CD per i dettagli di implementazione in Integrazione CI/CD, e GitHub Integrazione Azioni per i dettagli di implementazione in GitHub Integrazione Azioni.