Saltare al contenuto principale

Setting Up CI/CD for Capacitor Apps

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

Setting Up CI/CD for Capacitor Apps

Configurazione dei CI/CD per le app __CAPGO_KEEP_0__ Pipelines di integrazione continua e distribuzione Capacitor apps automate building, testing, and deployment, cutting release times by up to 70% and reducing errors by 60%. This guide covers everything you need to know, from setting up your environment to automating live updates with Capgo.

__CAPGO_KEEP_0__

  • Risultati chiave: Applicazioni CapacitorRiduce i tempi di build del 78% e le reiezioni 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 gli aggiornamenti post-rilascio con roll-out fasi e salvaguardie di rollback.

Passaggi di configurazione veloci:

  1. Preparare l'ambiente: Installare gli strumenti richiesti per iOS e Android.
  2. Configurare il progetto: Aggiornare capacitor.config.ts gestire le variabili di ambiente in modo sicuro.
  3. Pipelines di costruzioneAutomatizza l'installazione delle dipendenze, la compilazione e i test per entrambe le piattaforme.
  4. Ottimizzare le prestazioni: Utilizzare la cache, i costruzioni in parallelo e le workflow condizionali.
  5. Aggiungere aggiornamenti in tempo reale: Integrare Capgo per aggiornamenti OTA sicuri con roll-out fasi.

Con gli strumenti CI/CD, le app Capacitor ottengono rilasci più veloci e fluidi, riducendo gli errori e l'intervento manuale. Pronto a ottimizzare il tuo workflow? Inizia ora!

Integrateghi i tuoi flussi di CI/CD esistenti con funzionalità mobili

Preparazione dell'ambiente CI/CD

Una volta che avete affrontato le basi di CI/CD, il passo successivo è la configurazione dell'ambiente. Questo è il fondamento dell'automazione affidabile.

Configurazione dei strumenti e del software

Assicuratevi di avere questi strumenti chiave installati:

Per lo sviluppo di iOS:

  • Xcode 14 o versione successiva
  • Strumenti di 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 per Java (JDK)

Per confermare che le linee di comando Xcode sono installate, utilizza:

xcode-select -p

Criando un Capacitor Project

Documentazione del Framework Capacitor

Il tuo progetto Capacitor deve essere configurato correttamente per i flussi di lavoro CI/CD. capacitor.config.ts il file è al centro di questa configurazione:

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

Questo file garantisce che il tuo progetto sia conforme alle esigenze di CI/CD.

Configurazione delle Variabili di Ambiente

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

Variabili Chiave da Definire:

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

Per le build Android, generare dinamicamente un local.properties file durante il processo CI:

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

Quando lavori con build iOS, assicurati che la tua piattaforma CI supporti gli agenti macOS.

: Per verificare se l'ambiente è pronto:

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

: Gestire correttamente le chiavi e le credenziali può significativamente ridurre le possibilità di rifiuti dell'app store, come notato nelle statistiche precedenti [1].

Creazione della Pipeline CI/CD

Una volta che il tuo ambiente è pronto, il passo successivo è configurare una pipeline CI/CD per il tuo Capacitor appgestire in modo efficiente sia gli asset web che le build di piattaforme native.

Installazione e Aggiornamento delle Dipendenze

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

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 migliorare i tempi di build di 40-60% con questo setup

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

Impostazione di Costruzione per iOS e Android

Ecco come configurare le costruzioni per entrambe le piattaforme:

Configurazione dei Build per Android:

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 costruzione per Android:

cd android
./gradlew bundleRelease

Passaggi di Test e Distribuzione

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, configurare il trattamento di artefatti specifici per piattaforma:

Piattaforma Tipo di Artefatto Canale di Distribuzione
IOS .ipa App Store Connect
Android .aab Google Play Console

Utilizzando costruzioni in parallelo può ridurre significativamente il tempo di esecuzione della pipeline quando configurate correttamente.

Una volta che i tuoi build sono stati validati e pacchettizzati, sei pronto a passare alle aggiornamenti in tempo reale con Capgo.

sbb-itb-f9944d2

Aggiungere Capgo per Aggiornamenti in Tempo Reale

Capgo Live Update Interfaccia di Dashboard

Integrando Capgo nel tuo workflow migliori il tuo processo CI/CD consentendo aggiornamenti post-rilascio. Ecco come configurarlo:

Capgo Configurazione della Pipeline

Prima, 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 tuo ciclo di CI/CD includendo la gestione degli aggiornamenti nel tuo processo di build e distribuzione automatizzato.

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, configura le impostazioni di validazione come segue:

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

Capgo Panoramica delle funzionalità

Funzione Descrizione
Encryptazione fine-all'utente Riduce significativamente gli errori di distribuzione.
Esecuzione basata su canali Personalizza gli aggiornamenti per ambienti specifici.
Esecuzione in fasi Assicura che gli aggiornamenti siano distribuiti gradualmente.

Linee guida per gli aggiornamenti OTA

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

Strategia di Deployamento Fasi

Usa un rollout graduale 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 degli aggiornamenti

Tieni d'occhio questi metriche:

  • Tasso di adozioneMirati a 40-60% entro le prime 24 ore.
  • Sessioni senza crash: Mantenere al di sopra del 99,5%.
  • Tempo di verifica: Assicurarsi che sia inferiore a 500ms.

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

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

Miglioramento della prestazione della pipeline

Concentrandosi su tre aree chiave può portare a miglioramenti notevoli nella pipeline:

Ottimizzazione della velocità di costruzione

Per le modifiche solo web, utilizzare npx cap sync può risparmiare tempo evitando ricostruzioni native complete, riducendo il tempo di ricostruzione di circa il 40%. Ecco come puoi implementare la costruzione condizionale:

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

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

Automazione del controllo delle versioni

Automazione del controllo delle versioni può semplificare il tuo workflow. Utilizza lo script seguente per impostare dinamicamente numeri di versione e build:

- 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

La versione semantica automatica può essere configurata inoltre con questa impostazione:

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

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

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

Configurazione per più ambienti

Gestire più ambienti può essere semplificato utilizzando configurazioni specifiche per ambiente. Ecco un esempio di configurazione:

Ambiente File di configurazione
Sviluppo .env.dev
Stagging .env.staging
Produzione Vaults sicure

Potrai 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

La combinazione di queste configurazioni con il canale di distribuzione di Capgo consente aggiornamenti precisi e specifici per ambiente. Ciò garantisce rilasci più fluidi e un controllo maggiore sul comportamento dell'applicazione in diversi ambienti.

Riepilogo

Ruolo del CI/CD nel processo di sviluppo

L'utilizzo di pipeline CI/CD per le applicazioni Capacitor migliora significativamente l'efficienza del workflow. Secondo dati dell'industria, gli squadre possono raggiungere 50-70% cicli di rilascio più veloci grazie a costruzioni iOS e Android simultanee [3]Riducendo gli errori di deploy automatizzando compiti come l'installazione delle dipendenze e la sincronizzazione delle piattaforme. 40-60% [1][2].

Ad esempio, le squadre che utilizzano pipeline di Azure DevOps hanno automatizzato processi come passaggi di costruzione sequenziali e packaging di Xcode. Utilizzano anche ambienti parametrizzati per lo sviluppo e la produzione. Questa approccio elimina la necessità di operazioni manuali di CLI di Gradle e Xcode, garantendo la creazione di artefatti affidabili ogni volta.

Queste migliorie creano le basi per una gestione degli aggiornamenti più fluida quando associate a Capgo.

Capgo per la gestione degli aggiornamenti

Capgo funziona in modo trasparente con le pipeline CI/CD per fornire aggiornamenti istantanei, mantenendo la conformità con le politiche degli store di app. Gli aggiornamenti vengono distribuiti solo dopo aver superato le porte di testing automatizzate integrate nella pipeline.

Combinando costruzioni automatizzate con rilasci fasi, le squadre raggiungono risultati impressionanti: 80% di copertura utente entro 7 giorni e capacità di rollback in meno di un'ora.

Una strategia comune prevede l'esecuzione di tracce di distribuzione parallele. Le costruzioni automatizzate vengono utilizzate per i test interni, mentre i rilasci fasi si concentrano su segmenti di utenti. Ciò garantisce che gli aggiornamenti siano sia veloci che sicuri, supportati da porte di testing automatizzate rigorose [1].

FAQs

Come creare un'app Capacitor?

Creare un'app Capacitor richiede pochi passaggi semplici:

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

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

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

    npx cap sync

Lo step 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 del tuo 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 Builds nativi per il flusso di lavoro del prodotto in Capgo Builds nativi, 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 GitHub Integrazione Azioni per i dettagli di implementazione in GitHub Integrazione Azioni.

Aggiornamenti in tempo reale per le app Capacitor

Quando un bug nel 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.

Ultimi articoli dal nostro Blog

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