Saltare al contenuto principale

Impostazione della configurazione CI/CD per le app Capacitor

Scopri come semplificare le tue rilasci di app per iOS e Android utilizzando le pipeline CI/CD, migliorando l'efficienza e riducendo gli errori.

Martin Donadieu

Martin Donadieu

Marketing del contenuto

Configurazione della CI/CD per le app Capacitor

Vuoi rilasciare le tue app iOS e Android più velocemente e senza errori? I pipeline CI/CD per le Capacitor app automatizzano la costruzione, il testing e la distribuzione, riducendo i tempi di rilascio di fino al 70% e gli errori del 60%. Questa guida copre tutto ciò di cui hai bisogno, dalla configurazione del tuo ambiente all'automazione degli aggiornamenti in tempo reale con Capgo.

Presempio chiave:

  • Perché la CI/CD è importante per le app Capacitor: Velocizza i build di 78% e riduce le rifiute dei negozi del 60%.
  • Strumenti essenziali: Xcode, Android Studio, CocoaPods, e altro.
  • Configurazione della pipeline: Automatizza compiti come npx cap sync, caching delle dipendenze e costruzioni specifiche per piattaforma.
  • Aggiornamenti in tempo reale con Capgo: Abilita aggiornamenti post-rilascio con rilasci fasi e salvaguardie del rollback.

Passaggi di configurazione veloci:

  1. Prepara il tuo ambiente: Installa gli strumenti richiesti per iOS e Android.
  2. Configura il tuo progetto: Aggiorna capacitor.config.ts e gestisci le variabili di ambiente in modo sicuro.
  3. Pipeline di costruzione: Automatizza l'installazione delle dipendenze, la costruzione e i test per entrambe le piattaforme.
  4. Optimizza le prestazioni: Utilizza il caching, le costruzioni parallele e i flussi di lavoro condizionali.
  5. Aggiungi aggiornamenti in tempo reale: Integra Capgo per aggiornamenti OTA sicuri con rilasci fasi.

Con CI/CD, le app Capacitor raggiungono rilasci più veloci, più fluidi e minimizzano gli errori e l'intervento manuale. Pronto a ottimizzare il tuo workflow? Entriamo nel dettaglio!

Integra le tue pipeline CI/CD esistenti con capacità mobili

Preparazione del tuo ambiente CI/CD

Una volta che hai affrontato le basi del CI/CD, il passo successivo è configurare il tuo ambiente. Questo è il fondamento dell'automazione affidabile.

Configurazione degli strumenti e del software

Assicurati di avere questi strumenti chiave installati:

Per lo sviluppo di iOS:

  • Xcode 14 o versione successiva
  • Strumenti a linea di comando di Xcode
  • CocoaPods per la gestione delle dipendenze

Per lo sviluppo di Android:

  • Android Studio
  • Android SDK 33 o superiore
  • Kit di Sviluppo Java (JDK)

Per confermare che sono installati i Comandi della Linea di Comando Xcode, utilizza:

xcode-select -p

Creazione di un Capacitor Documentazione del Sito Web del Framework

Il tuo progetto Capacitor deve essere configurato correttamente per i flussi di lavoro CI/CD. Il

Your Capacitor project needs to be configured correctly for CI/CD workflows. The capacitor.config.ts Questo file assicura che il tuo progetto si allinei con le richieste dei flussi di lavoro CI/CD.

const config: CapacitorConfig = {
  appId: 'com.example.app',
  webDir: 'build',
  ios: { 
    scheme: 'MyApp'
  }
}

Configurazione delle Variabili di Ambiente

Gestire le credenziali in modo sicuro è un aspetto fondamentale per collegare la configurazione dell'ambiente con il flusso di lavoro CI/CD.

Variabili Chiave da Definire:

Setting Up Environment Variables

  • BUILD_ENV: Specifica la fase di distribuzione (ad esempio, production)
  • IOS_SIGNING_IDENTITY: Il tuo certificato di firma code
  • ANDROID_KEYSTORE_PATH: Percorso del tuo keystore Android

For builds Android, generare dinamicamente un local.properties file durante il processo CI:

echo "sdk.dir=$ANDROID_SDK_ROOT" > android/local.properties

When lavorando con builds iOS, assicurati che il tuo piattaforma CI supporti gli agenti macOS.

To verificare se il tuo ambiente è pronto:

node --version | grep "v16" && xcodebuild -version | grep "Xcode 14" || exit 1

La gestione corretta delle chiavi e dei credenziali può ridurre significativamente le possibilità di rifiuti dell'app store, come riportato nelle statistiche precedenti [1].

Creazione della tua pipeline CI/CD

Una volta pronto il tuo ambiente, il passo successivo è la configurazione di una pipeline CI/CD per il tuo Capacitor app. Questa pipeline dovrebbe gestire in modo efficiente sia gli asset web che le build delle piattaforme native.

Installazione e Aggiornamento Dipendenze

In ambienti CI/CD, la gestione delle dipendenze richiede un controllo di versione rigoroso. Inizia con un processo di installazione pulita:

npm install --ignore-scripts
npm install @capacitor/cli

Per accelerare i build, utilizza il caching delle dipendenze. Ad esempio, Azure DevOps gli utenti hanno visto i tempi di build migliorare del 40-60% con questo setup:

- task: Cache@2
  inputs:
    key: 'npm | "$(Agent.OS)" | package-lock.json'
    path: |
      node_modules
      android/.gradle
      ios/Pods

Configurazione dei Build per iOS e Android

Ecco come configurare i build per entrambe le piattaforme:

Configurazione di Build per iOS:

steps:
  - task: InstallAppleCertificate@2
    inputs:
      certSecureFile: 'certificate.p12'
      certPwd: $(P12_PASSWORD)
  - script: |
      xcodebuild -workspace ios/App/App.xcworkspace -scheme App -configuration Release -archivePath ios/App/App.xcarchive archive

Configurazione di Build per Android:

cd android
./gradlew bundleRelease

Passaggi di Test e Diagnostica

Esegui test di piattaforma in parallelo utilizzando una strategia di matrice:

test:
  steps:
    - run: npm run test:unit
    - run: npm run test:e2e
    - name: Run Platform Tests
      matrix:
        platform: [ios, android]
      run: npm run test:${{ matrix.platform }}

Per la distribuzione, configura il trattamento di artefatti specifici per piattaforma:

Piattaforma Tipo di artefatto Canale di distribuzione
iOS .ipa App Store Connect
Android .aab Google Play Console

L'utilizzo di costruzioni parallele può ridurre significativamente il tempo di esecuzione della pipeline quando configurato correttamente.

Una volta che i tuoi costruzioni sono state validate e pacchettizzate, sei pronto a passare alle aggiornamenti in tempo reale con Capgo (discusso nella sezione successiva).

sbb-itb-f9944d2

Aggiunta Capgo per Aggiornamenti in Tempo Reale

Capgo Dashboard di Aggiornamento in Tempo Reale

L'integrazione di Capgo nel tuo workflow migliora il tuo processo CI/CD consentendo aggiornamenti post-rilascio. Ecco come configurarlo:

Capgo Configurazione della Pipeline

In primo luogo, installa il Capgo CLI nel tuo ambiente di pipeline:

steps:
  - name: Install Capgo CLI
    run: npm install -g @capgo/cli
  - name: Configure Authentication
    env:
      CAPGO_KEY: ${{ secrets.CAPGO_API_KEY }}

Questa aggiunta estende il ciclo di vita CI/CD incorporando la gestione degli aggiornamenti nel tuo processo di costruzione e distribuzione automatizzato. L'integrazione di __CAPGO_KEEP_0__ nel tuo workflow migliora il tuo processo CI/CD consentendo aggiornamenti post-rilascio.

Successivamente, includi il comando di caricamento dopo i passaggi di build:

- name: Upload Update
  run: |
    capgo upload --api-key $CAPGO_KEY --bundle ./build/app-release.apk
    capgo deploy v${VERSION} --channel production

Per aggiornamenti sicuri, configurare le impostazioni di validazione come segue:

{
  "verification": {
    "checksum": "strict",
    "certificatePinning": true,
    "updateTimeout": 500
  }
}

Capgo Panoramica delle funzionalità

Funzione Descrizione
Crittografia End-to-End Riduce significativamente gli errori di distribuzione.
Distribuzione basata sui canali Adatta gli aggiornamenti a specifici ambienti.
Esecuzioni fasi Assicura che gli aggiornamenti siano distribuiti gradualmente.

Linee guida per l'aggiornamento OTA

Migliora i tuoi processi di testing tracciando questi metriche chiave dopo la distribuzione:

Strategia di distribuzione fasi

Usa un rilascio in fasi per controllare come gli aggiornamenti sono distribuiti:

- name: Staged Rollout
  run: |
    capgo deploy v1.2.3 --group "beta-users" --rollout 10%
    capgo deploy v1.2.3 --rollout 50%

Monitoraggio dell'aggiornamento

Tieni d'occhio queste metriche:

  • Tasso di adozione : mira a 40-60% entro le prime 24 ore.
  • Sessioni senza crash : mantieni sopra il 99,5%.
  • Tempo di verifica: Assicurati che sia inferiore a 500ms.

Se i crash superano i livelli accettabili, automatizza un rollback:

- name: Rollback Check
  run: |
    if [ $(capgo stats --version v1.2.3 --metric crashes) -gt 2 ]; then
      capgo rollback --channel production
    fi

Ottenimento di Prestazioni di Pipeline

Se si concentra su tre aree chiave si possono ottenere miglioramenti notevoli nella pipeline:

Optimizzazione della Velocità di Costruzione

Per le modifiche web-only, utilizzare npx cap sync può risparmiare tempo evitando rebuild completi nativi, riducendo il tempo di rebuild di circa il 40%. Ecco come puoi implementare il building condizionale:

- name: Build Strategy
  run: |
    [ "$WEB_ONLY" = true ] && npx cap sync || (./gradlew assembleRelease && xcodebuild ...)

Questa approccio assicura che solo i componenti necessari vengano ricostruiti, semplificando il processo.

Automazione del Controllo di Versione

L'automazione del controllo di versione può semplificare il tuo workflow. Utilizza lo script seguente per impostare versione e numeri di costruzione dinamicamente:

- name: Set Version
  run: |
    VERSION=$(node -p "require('./package.json').version")
    BUILD_NUMBER=$GITHUB_RUN_NUMBER
    echo "APP_VERSION=${VERSION}" >> $GITHUB_ENV
    echo "BUILD_ID=${BUILD_NUMBER}" >> $GITHUB_ENV

Inoltre, la versione semantica automatizzata può essere configurata con questa configurazione:

{
  "scripts": {
    "version": "standard-version",
    "build:prod": "npm version patch && ionic build --prod"
  }
}

Queste pratiche forniscono un solido framework per la tracciatura e l'ottimizzazione delle prestazioni della pipeline attraverso metriche come:

  • Tempo di costruzione per fase
  • Efficienza della cache (rapporti hit/miss)
  • Utilizzo massimo di risorse

Configurazione di più ambienti

Il gestione di più ambienti può essere semplificata utilizzando configurazioni specifiche per l'ambiente. Ecco un esempio di configurazione:

Ambiente File di configurazione
Sviluppo .env.dev
Stagging .env.staging
Produzione Depositi sicuri

È possibile configurare gli ambienti dinamicamente con questo script:

- name: Configure Environment
  env:
    API_KEY: ${{ secrets.ENV_SPECIFIC_API_KEY }}
    BUNDLE_ID: ${{ parameters.bundleId }}
  run: |
    echo "ENVIRONMENT=${{ parameters.environment }}" >> $GITHUB_ENV
    echo "API_ENDPOINT=${{ parameters.apiUrl }}" >> $GITHUB_ENV

Associando queste configurazioni al canale di distribuzione di Capgo consente aggiornamenti precisi e specifici per l'ambiente, garantendo un'implementazione più fluida e un controllo maggiore sul comportamento dell'applicazione in diversi ambienti.

Riepilogo

Ruolo del CI/CD nel Development

L'utilizzo dei flussi di lavoro CI/CD per le applicazioni Capacitor aumenta significativamente l'efficienza del workflow. Secondo i dati dell'industria, i team possono raggiungere 50-70% cicli di rilascio più veloci grazie a costruzioni iOS e Android simultanee [3]. L'automazione di compiti come l'installazione delle dipendenze e la sincronizzazione delle piattaforme riduce gli errori di distribuzione di 40-60% [1][2].

Esempio, i team che utilizzano i flussi di lavoro di Azure DevOps hanno automatizzato processi come i passaggi di costruzione sequenziali e il packaging di Xcode. Utilizzano anche ambienti parametrizzati per lo sviluppo e la produzione. Questa approccio elimina la necessità di operazioni manuali di Gradle e Xcode CLI, garantendo la creazione di artefatti affidabili ogni volta.

Queste migliorie creano le basi per la gestione degli aggiornamenti ottimizzata quando associate a Capgo.

Capgo per la Gestione degli Aggiornamenti

Capgo funziona in modo impeccabile con i flussi di lavoro CI/CD per fornire aggiornamenti istantanei mentre mantiene la conformità alle politiche degli store di app.

Gli aggiornamenti vengono distribuiti solo dopo aver superato le porte di testing automatizzate integrate nel flusso di lavoro. 80% copertura degli utenti entro 7 giorni e capacità di rollback in meno di un'ora.

Una strategia comune prevede l'esecuzione di tracce di distribuzione parallele. Vengono utilizzati costrutti automatici per il testing interno, mentre i rilasci fasi mirano a segmenti di utenti. Ciò assicura che gli aggiornamenti siano sia veloci che sicuri, supportati da rigorose porte di testing automatico [1].

Domande frequenti

Come creare un'app Capacitor?

La creazione di un'app Capacitor comporta pochi passaggi semplici:

  1. Configura il tuo ambienteInstallare Node.js e npm sul tuo sistema. Poi, utilizza l'CLI di Ionic per avviare un nuovo progetto con supporto per Capacitor

    ionic start myApp tabs --capacitor
  2. Aggiungi il supporto per le piattaformeAggiungi le piattaforme che desideri targetizzare, come iOS o Android:

    npx cap add ios
    npx cap add android
  3. Sincronizza il tuo web codeAssicurati che il tuo web code sia allineato con le piattaforme native eseguendo:

    npx cap sync

La fase di sincronizzazione è cruciale per mantenere la tua app coerente su tutte le piattaforme e garantire un funzionamento liscio nelle pipeline CI/CD. Per ulteriori informazioni sulla configurazione dell'ambiente, consulta la sezione Strumenti.

Continua da Setting Up CI/CD per le app Capacitor

Se stai utilizzando Setting Up CI/CD per le app Capacitor 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 For l'implementazione dettagliata nell'integrazione CI/CD, e GitHub Azioni di integrazione Per l'implementazione dettagliata in GitHub Azioni di integrazione.

Aggiornamenti in tempo reale per le app Capacitor

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 del nostro Blog

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