Zum Hauptinhalt springen

CI/CD-Einrichtung für Capacitor-Apps

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

CI/CD-Einrichtung für Capacitor-Apps

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

Hauptergebnisse:

  • Weshalb CI/CD für Capacitor-Apps: Die Builds werden um 78% beschleunigt und die Store-Ablehnungen um 60% reduziert.
  • Wichtige Werkzeuge: Xcode, Android Studio, CocoaPods, und mehr.
  • Pipeline-Einrichtung: Automatisieren Sie Aufgaben wie npx cap sync, Cachierung von Abhängigkeiten und plattformabhängige Builds.
  • : Aktivieren Sie Live-Updates mit Capgo: Aktivieren Sie post-release-Updates mit phasenweisen Rollouts und Sicherungen für Rückgängigmachung.

Schnelle Einrichtungsschritte:

  1. Vorbereiten Sie Ihr Umfeld: Installieren Sie erforderliche Werkzeuge für iOS und Android.
  2. Einstellungen für Ihr Projekt: Aktualisieren Sie capacitor.config.ts und verwalten Sie Umgebungsvariablen sicher.
  3. Pipelines zum Bauen: Automatisieren Sie die Abhängigkeitsinstallationen, Builds und Tests für beide Plattformen.
  4. Optimieren Sie die Leistung: Wählen Sie Caching, parallele Builds und bedingte Workflows.
  5. Fügen Sie Live-Updates hinzu: Integrieren Sie Capgo für sichere, OTA-Updates mit phasenweisen Rollouts.

Mit CI/CD erreichen Capacitor-Apps schnellere, glattere Releases, während die Fehler und die manuelle Intervention minimiert werden. Bereit, Ihre Workflow zu optimieren? 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 der Rückgrat der vertrauenswürdigen Automatisierung.

Tools- und Software-Setup

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

Für die iOS-Entwicklung:

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

Für die Android-Entwicklung:

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

Um sicherzustellen, dass Ihre Xcode-Befehlszeilenwerkzeuge installiert sind, verwenden Sie:

xcode-select -p

Erstellen Sie ein Capacitor Projekt

Capacitor Framework Dokumentation Website

Ihr Capacitor Projekt muss korrekt konfiguriert sein, um CI/CD-Workflows zu unterstützen. Das capacitor.config.ts Dieses Datei steht im Mittelpunkt dieser Einrichtung:

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

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

Umgebungswerte einrichten

Sichere Verwaltung von Anmeldeinformationen ist ein wichtiger Aspekt bei der Verbindung Ihrer Umgebungs-Einrichtung mit dem CI/CD-Pipeline.

Schlüsselvariablen definieren:

  • BUILD_ENV: Legt die Bereitstellungsbühne fest (z.B. production)
  • IOS_SIGNING_IDENTITY: Ihr code Signierungszeugnis
  • 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

Wenn Sie mit iOS-Builds arbeiten, 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

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

Erstellen Sie Ihr CI/CD-Pipeline

Einmal Ihr Umfeld bereitgestellt, ist der nächste Schritt die Einrichtung einer CI/CD-Pipeline für Ihr Capacitor-AnwendungsprojektDiese Pipeline sollte sowohl Web-Assets als auch native Plattform-Builds effizient 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 Buildzeit zu verkürzen, verwenden Sie Abhängigkeits-Caching. Zum Beispiel 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-Einrichtung

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

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

cd android
./gradlew bundleRelease

Schritte zur Überprüfung und Bereitstellung

Laufen 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 setzen Sie eine plattform-spezifische Artefaktverwaltung ein:

Plattform Artefakttyp Verteilungschannel
iOS IPA-Datei App Store Connect
Android AAB-Datei Google Play Console

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

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 __CAPGO_KEEP_0__ Live-Update-Dashboard-Interface

Capgo (erläutert im nächsten Abschnitt)

Integrieren Sie Capgo in Ihren Workflow, um Ihr CI/CD-Prozess zu verbessern und postrelease-Updates zu ermöglichen. Hier erfahren Sie, wie Sie es einrichten:

Capgo Pipeline-Konfiguration

Installieren Sie zunächst 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 Update-Verwaltung im Rahmen Ihres automatisierten Build- und Deployments-Prozesses einbeziehen.

Als Nächstes fügen Sie den Upload-Befehl nach Ihren Build-Schritten ein:

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

Für sichere Updateskonfigurieren Sie die 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.
Phasenweise Rollouts 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 rollende Auslieferung, um zu steuern, wie Updates verteilt werden:

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

Update-Monitoring

Beobachten Sie diese Metriken:

  • Annahmegrade: Ziel ist es, 40-60% innerhalb der ersten 24 Stunden zu erreichen.
  • Crash-freie Sitzungen: Halten Sie sich über 99,5%.
  • Verifizierungszeit: Stellen Sie sicher, dass sie unter 500ms liegt.

Wenn Crashs über akzeptable Grenzen liegen, 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

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

Leistungssteigerung bei der Buildgeschwindigkeit

Für Änderungen, die nur im Web vorgenommen werden, kann die Verwendung von npx cap sync Kann Zeit sparen, indem vollständige native Rebuilds ausgelassen werden, 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.

Versionierungskonfiguration

Die Automatisierung der Versionierung kann Ihren Workflow vereinfachen. Verwenden Sie das folgende Skript, um Version und Buildnummer 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 Erfassung und Verbesserung der Pipelineleistung über Metriken wie:

  • Buildzeit pro Stufe
  • Cacheeffizienz (Hitz- und Fehlerraten)
  • Höchster Ressourcenverbrauch

Multi-Umgebungskonfiguration

Kann man mehrere Umgebungen effizienter verwalten, indem man umgebungsbezogene Konfigurationen verwendet. Hier ist ein Beispiel für eine Konfiguration:

Umgebung Konfigurationsdatei
Entwicklung .env.dev
Staging .env.staging
Produktion Secure-Safe

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

Indem Sie diese Konfigurationen mit Capgo’s channel-basierten Bereitstellung kombinieren, können Sie präzise, umgebungsbezogene Updates durchführen. Dies gewährleistet glattere Rollouts und bessere Kontrolle über die Anwendungsverhalten in verschiedenen Umgebungen.

Zusammenfassung

Die Rolle von CI/CD im Entwicklungsprozess

Die Verwendung von CI/CD-Pipelines für Capacitor-Anwendungen erhöht die Effizienz des Workflowes erheblich. Laut Branchenstudien können Teams 50-70% schnellerere Releasezyklen dank simultaner iOS- und Android-Builds [3]. Automatisierung von Aufgaben wie Abhängigkeitsinstallation und Plattform-Synchronisierung reduziert Fehler bei der Bereitstellung um 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 entfernt die Notwendigkeit für manuelle Gradle- und Xcode-CLI-Operationen, um sicherzustellen, dass Artefakte jederzeit zuverlässig erstellt werden.

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

Capgo für Updateverwaltung

Capgo funktioniert reibungslos mit CI/CD-Pipelines, um sofortige Updates bereitzustellen, während die Einhaltung von App-Store-Richtlinien gewährleistet wird. Updates werden nur nachdem sie die automatisierten Testgatter durchlaufen haben, die in die Pipeline integriert sind.

Indem automatisierte Builds mit phasenweisen Rollouts kombiniert werden, erreichen Teams beeindruckende Ergebnisse: 80% Benutzerabdeckung innerhalb von 7 Tagen und Rollback-Fähigkeiten innerhalb von einer Stunde.

Ein häufiges Vorgehen besteht darin, parallel Deploymentspuren 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, unterstützt durch strenge automatisierte Testgatter [1].

Häufig gestellte Fragen

Wie erstellt man eine Capacitor-Anwendung?

Das Erstellen einer Capacitor-Anwendung beinhaltet einige einfache Schritte:

  1. Umgebung einrichten: Installieren Sie Node.js und npm auf Ihrem System. Dann verwenden Sie den Ionic CLI zum Erstellen eines neuen Projekts mit Capacitor-Unterstützung:

    ionic start myApp tabs --capacitor
  2. Hinzufügen von Plattformen: Fügen Sie die Plattformen hinzu, die Sie ansteuern möchten, wie z.B. iOS oder Android:

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

    npx cap sync

Der Synchronisierungsprozess ist entscheidend, um sicherzustellen, dass Ihre App konsistent ist und in CI/CD-Pipelines reibungslos läuft. Für weitere Informationen zur Einrichtung Ihrer Umgebung besuchen Sie bitte die Tools-Sektion.

Weitermachen von Setting Up CI/CD für Capacitor-Anwendungen

Wenn Sie __CAPGO_KEEP_0__ verwenden Setting Up CI/CD für Capacitor-Anwendungen um CI/CD-Automatisierung zu planen, verbinden Sie es mit Capgo CI/CD zur Produktworkflow in Capgo CI/CD Capgo Native Builds zur Produktworkflow in Capgo Native Builds Capgo Integrations zur Produktworkflow in Capgo Integrations CI/CD-Integration zur Implementierungsdetail in CI/CD-Integration, und GitHub Actions Integration zur Implementierungsdetail in GitHub Actions Integration

Live-Updates für Capacitor-Apps

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

Menschliche Unterstützung von Martin

Jetzt loslegen

Neueste Nachrichten aus unserem Blog

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