Zum Hauptinhalt springen

Einstellung der CI/CD für Capacitor-Anwendungen

Erhalten Sie eine Beschleunigung Ihrer App-Veröffentlichungen für iOS und Android mithilfe von CI/CD-Pipelines, um die Effizienz zu steigern und Fehler zu reduzieren.

Einrichten von CI/CD für Capacitor-Anwendungen

Wollen Sie schnellere, 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% gesenkt und die Fehler um 60% reduziert werden können. Diese Anleitung umfasst alles, was Sie wissen müssen, von der Einrichtung Ihrer Umgebung bis hin zur Automatisierung von Live-Updates mit Capgo.

Hauptergebnisse:

  • Weshalb CI/CD für Capacitor Apps: Beschleunigt die Builds um 78 % und reduziert die Store-Ablehnungen um 60 %.
  • Essentielle Werkzeuge: Xcode, Android Studio, CocoaPods, und mehr.
  • Pipeline-Einrichtung: Automatisiert Aufgaben wie npx cap sync, Abhängigkeits-Caching und plattform-spezifische Builds.
  • Live-Updates mit Capgo: Aktiviere post-release-Updates mit phasenweisen Rollouts und Sicherungen für Rückgängig-Machungen.

Rasche Einrichtungsschritte:

  1. Vorbereitung Ihres Umfelds: Installieren Sie erforderliche Werkzeuge für iOS und Android.
  2. Konfigurieren Sie Ihr Projekt: Update capacitor.config.ts und die Umgebungsvariablen sicher verwalten.
  3. und verwalten Sie Umgebungsvariablen sicher.Automatisiere die Installation von Abhängigkeiten, die Erstellung und Tests für beide Plattformen.
  4. LeistungsanpassungVerwenden Sie Caching, parallele Builds und bedingte Workflows.
  5. Live Updates hinzufügenIntegriere Capgo für sichere, OTA-Updates mit phasenweisen Rollouts.

Mit CI/CD erreichen Capacitor-Apps schnellere, glattere Releases, während Fehler und manuelle Intervention minimiert werden. Zeit für die Optimierung Ihres Workflows?

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 für zuverlässige Automatisierung.

Tools und Software-Setup

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

Für iOS-Entwicklung:

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

Für Android-Entwicklung:

  • Android Studio
  • Android SDK 33 oder höher
  • Java-Entwicklungskit (JDK)

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

xcode-select -p

Erstellen Sie ein Capacitor Projekt

Capacitor Framework-Dokumentationswebsite

Ihr Capacitor-Projekt muss korrekt konfiguriert sein, um CI/CD-Workflows zu unterstützen. Das capacitor.config.ts Datei ist das Herz dieses Setup:

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

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

Umgebungsvariablen einrichten

Die sichere Verwaltung von Zugriffscodes ist ein wichtiger Aspekt bei der Verbindung Ihrer Umgebungsanpassungen mit der CI/CD-Pipeline.

Schlüsselvariablen zu definieren:

  • BUILD_ENV: Legt die Bereitstellungsbühne fest (z.B. production)
  • IOS_SIGNING_IDENTITY: Ihr code-Signierungszertifikat
  • ANDROID_KEYSTORE_PATH: Pfad zu Ihrem Android-Keystore

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

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

Wenn Sie mit iOS-Builds arbeiten, stellen Sie sicher, dass Ihre CI-Plattform macOS-Agenten unterstützt.

Um zu überprüfen, ob Ihre Umgebung bereit ist:

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

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

Erstellen Sie Ihre CI/CD-Pipeline

Einmal Ihre Umgebung vorbereitet, ist der nächste Schritt die Einrichtung eines CI/CD-Pipelines für Ihr Capacitor-Anwendungsprojekt. Dieser Pipeline sollte beide Web-Assets und native Plattform-Builds effizient verwalten.

Installieren und Aktualisieren von Abhängigkeiten

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

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

Um die Build-Zeit zu verkürzen, verwenden Sie eine Abhängigkeits-Cache. Zum Beispiel Azure DevOps Benutzer haben mit dieser Konfiguration eine Reduzierung der Build-Zeiten um 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-Einrichtung

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

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

Test- und Bereitstellungsschritte

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 müssen Sie Plattform-spezifische Artefaktverwaltung einrichten:

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

Mit parallelen Builds kann die Ausführungszeit des Pipelines erheblich reduziert werden, wenn sie richtig konfiguriert sind.

Sobald Ihre Builds validiert und verpackt sind, sind Sie bereit, auf Live-Updates mit Capgo (erörtert im nächsten Abschnitt) zu wechseln.

sbb-itb-f9944d2

Hinzufügen Capgo für Live-Updates

Capgo Live Update Dashboard-Interface

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

Capgo Pipeline-Konfiguration

Zuerst installieren Sie das Capgo CLI in Ihrem Pipeline-Umgebung:

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

Diese Erweiterung erweitert Ihr CI/CD-Zyklus, indem sie Update-Management Zu nächst fügen Sie den Upload-Befehl nach Ihren Build-Schritten ein:

Nächsten, fügen Sie den Upload-Befehl nach Ihren Build-Schritten hinzu:

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

For Sichere Updates__CAPGO_KEEP_0__ Features Übersicht

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

Capgo Featuresübersicht

Beschreibung Description
End-to-End Verschlüsselung Verringert Fehler bei der Bereitstellung erheblich.
Kanalbasierte Bereitstellung Anpasset Updates auf bestimmte Umgebungen.
Phasenweise Bereitstellung 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 Bereitstellungstrategie

Verwenden Sie eine rollierende Veröffentlichung, um die Verteilung von Updates zu steuern:

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

  • AnpassungsrateZiel: 40-60% innerhalb der ersten 24 Stunden.
  • Crash-freie Sitzungen: Erreichen Sie über 99,5%.
  • ÜberprüfungsdauerStelle sicher, dass es unter 500ms liegt.

Wenn Crashs die akzeptablen Grenzen überschreiten, automatisieren Sie einen Rollback:

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

Verbesserung der Pipeline-Leistung

Konzentrieren Sie sich auf drei Schlüsselfaktoren, um eine merkliche Verbesserung Ihrer Pipeline zu erzielen:

Optimierung der Build-Geschwindigkeit

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

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

Dieser Ansatz stellt sicher, dass nur die notwendigen Komponenten neu erstellt werden, was den Prozess vereinfacht.

Automatisierung der Versionskontrolle

Automatisieren Sie die Versionskontrolle, um Ihre Arbeitsabläufe zu vereinfachen. Verwenden Sie das folgende Skript, um die Versions- und Buildnummern dynamisch festzulegen:

- 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 Erfassung und Verbesserung der Pipelineleistung durch Metriken wie:

  • Zeit pro Bauabschnitt
  • Cache-Effizienz (Hitz-/Fehlerraten)
  • Peak-Ressourcenverbrauch

Multi-Umgebungskonfiguration

Mehrere Umgebungen können durch die Verwendung umgebungsbezogener Konfigurationen vereinfacht werden. Hier ist ein Beispiel für eine Konfiguration:

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 glattere Rollouts und 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 um ein Vielfaches. Nach Angaben von Branchenstudien können Teams 50-70% schnellere Releasezyklen dank simultaner iOS- und Android-Builds [3]Automatisierung von Aufgaben wie der Abhängigkeitsinstallation und der Plattform-Synchronisierung reduziert Fehler bei der Bereitstellung durch 40-60% [1][2].

Zum Beispiel 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-CLI-Operationen, sodass sichergestellt wird, dass Artefakte jederzeit zuverlässig erstellt werden.

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

Capgo für Update-Management

Capgo funktioniert reibungslos mit CI/CD-Pipelines, um sofortige Updates bereitzustellen, während die Einhaltung von Richtlinien der App-Stores gewährleistet ist. Updates werden nur nachdem sie die automatisierten Testgitter in der Pipeline passiert haben, bereitgestellt.

Indem automatisierte Builds mit phasenweisen Rollouts kombiniert werden, erreichen Teams beeindruckende Ergebnisse: 80% der Benutzer sind innerhalb von 7 Tagen abgedeckt und Rollback-Funktionen innerhalb einer Stunde verfügbar.

Ein gängiges Vorgehen besteht darin, parallel Deployments zu führen. Automatisierte Builds werden für interne Tests verwendet, während phasenweise Rollouts auf Benutzersegmente abzielen. Dies stellt sicher, dass Updates sowohl schnell als auch sicher sind, durch rigorose automatisierte Testgitter unterstützt. [1].

FAQs

Auf welche Weise kann ein Capacitor-App erstellt werden?

Die Erstellung eines Capacitor-Apps umfasst einige einfache Schritte:

  1. Umgebung einrichten: Installieren Sie Node.js und npm auf Ihrem System. Dann verwenden Sie den Ionic CLI , um ein neues Projekt mit Capacitor-Unterstützung zu starten:

    ionic start myApp tabs --capacitor
  2. Hinzufügen von Plattformunterstützung: Fügen Sie die Plattformen hinzu, die Sie unterstützen möchten, wie iOS oder Android:

    npx cap add ios
    npx cap add android
  3. Synchronisieren Sie Ihr Web code: Stellen Sie sicher, dass Ihr Web code mit den nativen Plattformen übereinstimmt, indem Sie ausführen:

    npx cap sync

Der Synchronisierungsprozess ist entscheidend, um sicherzustellen, dass Ihre App konsistent ist und eine glatte Funktion in CI/CD-Pipelines bietet. Weitere Informationen zum Einrichten Ihres Umfelds finden Sie in der Tools-Sektion.

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

Wenn Sie bereits Einrichten Sie CI/CD für Capacitor-Anwendungen um die CI/CD-Automatisierung zu planen, verbinden Sie es mit Capgo CI/CD für den Produktworkflow in Capgo CI/CD Capgo nativee Builds für den Produktworkflow in Capgo Native Builds Capgo Integrations für den 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 Web-Schicht-Bug live ist, versenden Sie die Reparatur über Capgo anstatt Tage zu warten, bis die App-Store-Zulassung vorliegt. Die Benutzer erhalten die Aktualisierung im Hintergrund, während native Änderungen im normalen Review-Prozess bleiben.

Neueste aus unserem Blog

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