Zum Hauptinhalt springen

Einstellung von CI/CD für Capacitor-Anwendungen

Erfahren Sie, wie Sie Ihre App-Veröffentlichungen für iOS und Android mit CI/CD-Pipelines optimieren können, um die Effizienz zu steigern und Fehler zu reduzieren.

Einstellung von CI/CD für Capacitor-Anwendungen

Möchten Sie schneller und fehlerfreie App-Veröffentlichungen für iOS und Android? CI/CD-Pipelines für Capacitor Apps automatisieren Sie das Bauen, Testen und Bereitstellen, wodurch die Veröffentlichungszeiten um bis zu 70% reduziert und die Fehler um 60% verringert werden können. Diese Anleitung umfasst alles, was Sie wissen müssen, von der Einrichtung Ihrer Umgebung bis hin zum Automatisieren von Live-Updates mit Capgo.

Warum CI/CD für

  • __CAPGO_KEEP_0__-Apps Capacitor appsWichtige Werkzeuge
  • Xcode: Android Studio, Android Studio, CocoaPods, und mehr.
  • Pipeline-Einrichtung: Automatisieren Sie Aufgaben wie npx cap sync, Abhängigkeitscaching und plattformabhängige Builds.
  • Live-Updates mit Capgo: Aktivieren Sie postveröffentlichungsbedingte Updates mit phasenweisen Rollouts und Rollover-Sicherungen.

Schnelle Einrichtungsschritte:

  1. Vorbereiten Sie Ihre Umgebung: Installieren Sie erforderliche Tools für iOS und Android.
  2. Konfigurieren Sie Ihr Projekt: Aktualisieren Sie capacitor.config.ts und verwalten Sie Umgebungsvariablen sicher.
  3. Build-Pipelines: Automatisieren Sie die Installation von Abhängigkeiten, die Erstellung und die Tests für beide Plattformen.
  4. Leistungsanpassung: Verwenden Sie Caching, parallele Builds und bedingte Workflows.
  5. Hinzufügen von Live-Updates: Integrieren Sie Capgo für sichere, OTA-Updates mit phasenweisen Rollouts.

Mithilfe von CI/CD erreichen Capacitor-Apps schnellere, glattere Releases, während Fehler und manuelle Eingriffe minimiert werden. Bereit, Ihre Workflow-Optimierung vorzunehmen? Lassen Sie uns loslegen!

Integrieren Sie Ihre bestehenden CI/CD-Pipelines mit mobilen Funktionen

Vorbereitung Ihres CI/CD-Umgebungs

Einmal, wenn Sie die Grundlagen von CI/CD beherrschen, ist der nächste Schritt die Einrichtung Ihrer Umgebung. Dies ist die Grundlage einer zuverlässigen Automatisierung.

Tools und Software-Einstellungen

Stellen Sie sicher, dass diese Schlüsselwerkzeuge installiert sind:

Für die iOS-Entwicklung:

  • Xcode 14 oder neuer
  • Xcode Command Line Tools
  • CocoaPods für die Verwaltung von Abhängigkeiten

Für die Android-Entwicklung:

  • Android Studio
  • Android SDK 33 oder höher
  • Java Development Kit (JDK)

Um sicherzustellen, dass Ihre Xcode Command Line Tools installiert sind, verwenden Sie:

xcode-select -p

Erstellung eines Capacitor Capacitor-Anwendung

Capacitor Framework Documentation Website

Capacitor Framework Dokumentationswebsite capacitor.config.ts Dein __CAPGO_KEEP_0__ Projekt muss korrekt konfiguriert sein, um CI/CD-Workflows zu ermöglichen. Das

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

Datei ist das Herz dieses Setup:

Diese Datei stellt sicher, dass dein Projekt den CI/CD-Anforderungen entspricht.

Umgebungsvariablen einrichten

Sicherheitskritische Daten verwalten ist ein wichtiger Aspekt bei der Verbindung deiner Umgebungs-Einstellungen mit dem CI/CD-Pipeline.

  • BUILD_ENVSchlüsselvariablen definieren: production)
  • IOS_SIGNING_IDENTITY: Your code signing certificate
  • ANDROID_KEYSTORE_PATH: Pfad zu Ihrem Android-Keystore

Für Android-Builds generieren Sie dynamisch eine local.properties Datei während des CI-Prozesses:

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

Beim Arbeiten mit iOS-Builds stellen Sie sicher, dass Ihr CI-Plattform macOS-Agenten unterstützt.

Um zu überprüfen, ob Ihr Umfeld bereit ist:

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

Eine ordnungsgemäße Verwaltung von Schlüsseln und Anmeldeinformationen kann die Chancen auf App-Store-Ablehnungen erheblich verringern, wie in früheren Statistiken angegeben [1].

Erstellen Sie Ihr CI/CD-Pipeline

Einmal Ihr Umfeld bereit ist, ist der nächste Schritt die Einrichtung einer CI/CD-Pipeline für Ihr Capacitor-AppDiese Pipeline sollte effizient sowohl Web-Assets als auch native Plattform-Builds verwalten.

Installieren und Aktualisieren von Abhängigkeiten

In CI/CD-Umgebungen erfordert die Verwaltung von Abhängigkeiten eine strikte Versionskontrolle. Beginnen Sie mit einem sauberen Installationsprozess:

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

Um die Buildzeiten zu beschleunigen, verwenden Sie die Abhängigkeitscaching. Azure DevOps Benutzer haben mit dieser Konfiguration eine Verbesserung der Buildzeiten von 40-60% gesehen:

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

iOS- und Android-Build-Konfiguration

Hier erfahren Sie, wie Sie die Builds für beide Plattformen konfigurieren:

iOS-Build-Konfiguration:

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

Android-Build-Konfiguration:

cd android
./gradlew bundleRelease

Schritte zur Tests- und Bereitstellung:

Führen Sie Plattformtests parallel mit einer Matrixstrategie aus:

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 }}

Für die Bereitstellung stellen Sie eine plattform-spezifische Artefaktverwaltung ein:

Plattform Artefakttyp Distributionskanal
iOS .ipa App Store Connect
Android .aab Google Play Console

Mit parallelen Builds kann die Pipeline-Ausführungszeit erheblich reduziert werden, wenn sie richtig konfiguriert ist.

Once your builds are validated and packaged, you’re ready to move on to live updates with Capgo (discussed in the next section).

sbb-itb-f9944d2

Hinzufügen Capgo zum Live-Update

Capgo Live-Update-Dashboard-Interface

Die Integration von Capgo in Ihren Workflow verbessert Ihren CI/CD-Prozess, indem sie postveröffentlichende Updates ermöglicht. Hier erfahren Sie, wie Sie es einrichten:

Capgo Pipeline-Konfiguration

Zunächst installieren Sie das Capgo CLI im Umfeld Ihres Pipelines:

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

Diese Ergänzung erweitert Ihr CI/CD-Lebenszyklus, indem Sie die Verwaltung von Updates in Ihren automatisierten Build- und Bereitstellungsprozess einbeziehen. Als Nächstes fügen Sie den Upload-Befehl nach Ihren Build-Schritten ein: Für

__CAPGO_KEEP_0__

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

__CAPGO_KEEP_1__ sichere Updates , Konfiguration der Validierungs-Einstellungen wie folgt:

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

Capgo Features Übersicht

Funktion Beschreibung
End-to-End-Verschlüsselung Reduziert die Fehler bei der Bereitstellung erheblich.
Kanalbasierte Bereitstellung Anpasst Updates an spezifische Umgebungen.
Phasenweises Rollout Stellt sicher, dass Updates allmählich verteilt werden.

OTA-Update-Leitfaden

Verbessern Sie Ihre Testprozesse, indem Sie diese Schlüsselmetriken nach der Bereitstellung verfolgen:

Phasenweise Bereitstellungsstrategie

Verwenden Sie eine schrittweise Bereitstellung, um die Kontrolle über die Verteilung von Updates zu behalten:

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

Update-Überwachung

Beobachten Sie diese Metriken:

  • Anpassungsrate: Ziel ist eine Rate von 40-60% innerhalb der ersten 24 Stunden.
  • Crash-freie Sitzungen: Halten Sie sie über 99,5%.
  • Überprüfungszeit: Stellen Sie sicher, dass sie unter 500ms liegt.

Wenn Crashs über akzeptable Grenzen liegen, automatisieren Sie einen Rollover:

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

Pipeline-Leistung verbessern

Fokussieren Sie sich auf drei Schlüsselbereiche, um eine merkliche Verbesserung in Ihrem Pipeline zu erzielen:

Optimierung der Build-Geschwindigkeit

Für Web-Änderungen können Sie mit npx cap sync Zeit sparen, indem Sie vollständige native Rebuilds vermeiden, wodurch die Rebuildzeit um etwa 40% reduziert wird. Hier erfahren Sie, wie Sie bedingte Builds implementieren können:

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

Diese Vorgehensweise stellt sicher, dass nur die notwendigen Komponenten neu erstellt werden, wodurch der Prozess erleichtert wird.

Automatisierung der Versionskontrolle

Die Automatisierung der Versionskontrolle kann Ihre Workflow vereinfachen. Verwenden Sie das folgende Skript, um Versions- und Buildnummern dynamisch zu setzen:

- 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

Zusätzlich kann die automatisierte semantische Versionsnummerierung mit dieser Konfiguration eingerichtet werden:

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

Diese Praktiken bieten einen soliden Rahmen für die Verfolgung und Verbesserung der Pipeline-Leistung über Metriken wie:

  • Buildzeit pro Schritt
  • Cache-Effizienz (Treffer/Verfehlungsverhältnisse)
  • Peak Ressourcenverbrauch

Multi-Umgebungskonfiguration

Die Verwaltung mehrerer Umgebungen kann durch die Verwendung umgebungsbezogener Konfigurationen vereinfacht werden. Hier ist ein Beispielkonfiguration:

Umgebung Konfigurationsdatei
Entwicklung .env.dev
Staging .env.staging
Produktion Sichere Tresore

Sie können Umgebungen dynamisch mit diesem Skript konfigurieren:

- 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

Die Kombination dieser Konfigurationen mit Capgo’s channel-basierten Bereitstellung ermöglicht präzise, umgebungsbezogene Updates. Dies sichert glatte Rollouts und eine bessere Kontrolle über die Anwendungsverhalten in verschiedenen Umgebungen.

Zusammenfassung

Die Rolle der CI/CD im Entwicklungsprozess

Die Verwendung von CI/CD-Pipelines für Capacitor-Anwendungen erhöht die Effizienz des Workflow signifikant. Nach Angaben von Branchendaten können Teams 50-70% schnellere Releasezyklen dank gleichzeitiger iOS- und Android-Builds [3]. 40-60% [1][2].

For instance, teams leveraging Azure DevOps pipelines have automated processes such as sequential build steps and Xcode packaging. They also use parameterized environments for both development and production. This approach removes the need for manual Gradle and Xcode CLI operations, ensuring reliable artifact creation every time.

Beispielsweise haben Teams, die Azure DevOps-Pipelines nutzen, automatisierte Prozesse wie sequenzielle Build-Schritte und Xcode-Packaging implementiert. Sie nutzen auch parametrisierte Umgebungen für Entwicklung und Produktion. Diese Vorgehensweise eliminiert die Notwendigkeit für manuelle Gradle- und Xcode-Capgo-Operationen, um zuverlässige Artefaktbildung sicherzustellen.

Diese Verbesserungen legen den Grundstein für eine gestreamte Updateverwaltung, wenn sie mit Capgo kombiniert wird.

Capgo für die Updateverwaltung

__CAPGO_KEEP_0__ arbeitet reibungslos mit CI/CD-Pipelines zusammen, um sofortige Updates bereitzustellen, während die Einhaltung von App-Store-Richtlinien gewährleistet wird. Updates werden nur nachdem sie die automatisierten Testgatter in der Pipeline passiert haben, bereitgestellt. Indem automatisierte Builds mit phasenweisen Rollouts kombiniert werden, können Teams beeindruckende Ergebnisse erzielen: 80% Benutzerabdeckung innerhalb von 7 Tagen

Ausfallsicherheit ist eine gängige Strategie, die parallel verlaufende Bereitstellungsverfolgungen beinhaltet. Automatisierte Builds werden für interne Tests verwendet, während sichere Rollouts auf Benutzersegmente ausgerichtet sind. Dies stellt sicher, dass Updates schnell und sicher sind, unterstützt durch strenge automatisierte Testgates [1].

FAQs

Wie erstelle ich eine Capacitor-Anwendung?

Ein Capacitor-Anwendung aufzubauen, erfordert einige einfache Schritte:

  1. Umgebung einrichten: Installiere Node.js und npm auf deinem System. Dann verwende das Ionic-CLI-Tool, um eine neue Projekt mit Capacitor-Unterstützung zu starten:

    ionic start myApp tabs --capacitor
  2. Plattformen hinzufügen: Füge die Plattformen hinzu, die du targeten möchtest, wie z.B. iOS oder Android:

    npx cap add ios
    npx cap add android
  3. Überprüfe deine Web-code: Stelle sicher, dass deine Web-code mit den nativen Plattformen übereinstimmt, indem du folgendes ausführst:

    npx cap sync

Der Synchronisierungsprozess ist entscheidend, um sicherzustellen, dass deine App konsistent bleibt und reibungslos in CI/CD-Pipelines läuft. Weitere Informationen zur Einrichtung deiner Umgebung findest du im Tools-Section.

Fortsetze mit der Einrichtung von CI/CD für Capacitor-Anwendungen

Wenn Sie Einstellungen für CI/CD für Capacitor-Anwendungen um die Planung der CI/CD-Automatisierung zu erstellen, mit ihr zu verbinden Capgo-CI/CD für das Produktworkflow in Capgo-CI/CD Capgo-Native Builds für das Produktworkflow in Capgo-Native Builds Capgo-Integrations für das Produktworkflow in Capgo-Integrations CI/CD-Integration für die Implementierungsdetails in CI/CD-Integration, und GitHub-Actions-Integration Für die Implementierungsdetails in GitHub Actions Integration.

Live-Updates für Capacitor-Anwendungen

Wenn ein Fehler im Web-Schicht lebt, schicken Sie die Reparatur über Capgo anstatt Tage zu warten, bis die App-Store-Zulassung genehmigt ist. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Unterstützung durch Menschen von Martin

Los geht's jetzt

Neueste aus unserem Blog

Capgo bietet Ihnen die besten Einblicke, die Sie benötigen, um eine wirklich professionelle mobile App zu erstellen.