Vai alla navigazione principale
Integrazione CI/CD

Automatic Capacitor IOS build with Codemagic

Come configurare una pipeline CI/CD per la tua app IOS Ionic utilizzando Codemagic e Codemagic in 5 minuti (2024)

Martin Donadieu

Martin Donadieu

Content Marketer

Automatic Capacitor IOS build with Codemagic

Distribuzione Continua per iOS utilizzando Codemagic

Requisiti

Prima di continuare con il tutorial…

  • La iscrizione al programma di sviluppo per iOS.
  • Desiderio di leggere 😆…

Importante per il prezzo

Prezzo Codemagic Action

https://codemagic.io/pricing/

Il servizio è ‘gratuito’ fino a 500 minuti macOS M1 al mese, a seconda della macchina scelta.
Stiamo utilizzando una macchina macOS M1 puoi vedere nel 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 va, continuiamo…

📣 Nel post supponiamo di avere già creato l'app in iTunes connect, abbiamo i certificati dell'ecosistema Apple, tutto sarà configurato da Codemagic!

Scendiamo in acqua 🤿

Passaggi da seguire nel post

  1. Utilizzare App Store Connect API con Codemagic
  2. Requisiti
  3. Creazione di una chiave App Store Connect API
  4. Utilizzare una chiave App Store Connect API
  5. Copia i file Fastlane
  6. 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'unico a poter 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.

  1. ID. chiave.
  2. File di chiave o contenuto di chiave.
  3. Creazione di una chiave App Store Connect __CAPGO_KEEP_0__

Creating an App Store Connect API Key

1 — Accedi a

App Store Connect three.

2 — Scegli Utenti e accesso.

Accesso all'utente di App Store Connect

3 — Scegli la scheda API Chiavi.

Chiavi API di App Store Connect

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

Le chiavi API di App Store Connect creano

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

Le chiavi API di App Store Connect creano nome

6 — Clicca su Genera.

Una chiave API non può avere l'accesso limitato a specifiche app.

Il nome della nuova chiave, l'ID chiave, un link di download e altre informazioni vengono visualizzati sulla pagina.

Download delle chiavi di App Store Connect

Ecco i tre dati necessari: <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. 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.

Aggiunta della chiave API di App Store Connect a Codemagic

  1. Apri le impostazioni del tuo team di Codemagic Seleziona le integrazioni del team Apri il team Seleziona le identità di firma code Seleziona le identità di firma code E caricare il certificato Caricare il certificato

  2. Clicca il Aggiungi chiave tasto.

  3. 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.

  4. Inserisci il Issuer ID e Key ID valori.

  5. Clicca su Scegli un file .p8 o trascina il file per caricare la chiave App Store Connect API scaricata precedentemente.

  6. 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 > Squadre e seleziona il tuo team.

Code identità di firma

Clicca su Gestisci certificati > + e seleziona Distribuzione Apple.

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, passare alla keychain di accesso e poi alla scheda I miei certificati.

I miei certificati

Poi puoi selezionare il certificato che desideri scaricare. (Cerca per la data del certificato)

E poi fai clic destro sul certificato e seleziona Esporta.

Scegli il formato del file Informazioni personali di scambio (.p12).

Quello scaricherà il certificato come un .p12 file.

Profili di provisioning

Apri Apple Developer e seleziona il team giusto.

Poi crea un nuovo profilo, cliccando su +

Crea un nuovo profilo

E seleziona App Store Connect.

Seleziona App Store Connect

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

Scegli la giusta app

Scegli la giusta certificazione che hai creato prima (cerca la data di scadenza, dovrebbe essere lo stesso giorno e mese di oggi) e clicca su Continua.

Scegli la giusta certificazione

Inserisci infine il nome del profilo e clicca su Genera.

Il nome verrà utilizzato per identificare il profilo in Codemagic.

Genera il profilo

Puoi scaricare il profilo come un .mobileprovision file.

Scarica il profilo

Aggiungi la Code certificazione di firma

Codemagic consente di caricare i certificati di firma code come archivi PKCS#12 che contengono sia il certificato sia la chiave privata necessarie per utilizzarli. Quando si carica, Codemagic chiederà di fornire la password del certificato (se il certificato è protetto da password) insieme a un nome di riferimento univoco Nome di riferimento, che può essere poi utilizzato nella codemagic.yaml configurazione per recuperare il file specifico.

  • Carica certificato
  • Genera nuovo certificato
  • Estrai dal Portale dello Sviluppatore
  1. Apre le impostazioni del tuo team Codemagic, vai a impostazioni codemagic.yaml > identità di firma Code.
  2. Apre Certificati iOS tab.
  3. Carica il file del certificato cliccando su Scegli un file .p12 o .pem o trascinando il file nell'area indicata.
  4. Inserisci il Password del certificato e scegli un Nome di riferimento.
  5. Clicca su 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 campo "Certificato") o meno. 3. Configura Codemagic

Configura i segreti di Codemagic

Ever wonder dove i valori di "sono venuti da? Bene, non è più un segreto – vengono dal tuo progetto segreto.

4. Configura il file di flusso di lavoro di Codemagic ENV Crea un file denominato "

al livello radice del tuo progetto e aggiungi il seguente.

Questo flusso di lavoro dovrebbe essere attivato manualmente o dopo ogni __CAPGO_KEEP_0__ codemagic.yml 3. Setup Codemagic

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, consulta Costruzione automatica e rilascio con GitHub azioni in primo luogo.

Successivamente, questo workflow estrarrà 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 Cordova, ma è preferibile il plugin Capacitor JS.

5. Attiva il workflow

Attiva il workflow

Inserisci i nuovi commit nella branch main o development per attivare il workflow.

Iniziato con commit

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

Dashboard Testflight

Avvia manualmente

Puoi avviare manualmente il workflow.

Scegli per primo l'app che vuoi costruire, quindi clicca su Avvia nuovo build.

Scegli app

Scegli poi la branch che vuoi costruire.

Scegli branch

E clicca su Avvia nuovo build.

Poi vai alla lista di costruzione

Lista di costruzione

E clicca sul costruire per vedere il risultato.

Risultato di costruzione

Si può distribuire dalla macchina 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 sugli articoli seguenti:

Continua con la costruzione automatica Capacitor IOS con Codemagic

Se stai utilizzando La costruzione automatica Capacitor IOS con Codemagic per pianificare l'automazione CI/CD, connettilo con Capgo CI/CD per il flusso di lavoro del prodotto in Capgo CI/CD, Capgo Costruzioni native per il flusso di lavoro del prodotto in Capgo Costruzioni native, Capgo Integrazioni per il flusso di lavoro del prodotto in Capgo Integrazioni, Integrazione CI/CD per i dettagli di implementazione in Integrazione CI/CD, e Azioni di integrazione di GitHub per i dettagli di implementazione in Azioni di integrazione di GitHub

Aggiornamenti in tempo reale per Capacitor app

Quando un bug del layer web è attivo, invia la correzione attraverso Capgo invece di attendere giorni per l'approvazione della store. Gli utenti ricevono l'aggiornamento in background mentre le modifiche native rimangono nel normale percorso di revisione.

Inizia subito

Ultimi articoli dal nostro Blog

Capgo ti offre le migliori informazioni che ti servono per creare un'app mobile veramente professionale.