Zum Hauptinhalt springen

Version-Zielgruppierung

Jede native Version erhält nur die Pakete, die sie ausführen kann

Die Benutzer aktualisieren sich selbstständig, sodass mehrere native Versionen deiner App gleichzeitig live sind. Capgo überprüft die native Abhängigkeiten jedes Pakets, blockiert Updates durch Versionsregeln und kann jede native Version auf ihren eigenen Kanal routen.

Überprüfen Sie die nativen Kompatibilität vor dem Hochladen

Die Kompatibilitätsprüfung des Bundles vergleicht die nativen Pakete in Ihrem Projekt mit dem live auf dem Kanal verfügbaren Bundle. Fügen Sie --fail-on-incompatible in CI hinzu, um ein Hochladen zu stoppen, das eine neue Binärdatei benötigt.

Nativen Kompatibilitätsdokumentation

Setzen Sie eine nativere Versionsgrenze auf jedem Bundle

Legen Sie den Kanal auf die Metadatenstrategie und laden Sie mit --auto-min-update-version hoch. Geräte, deren nativer Version unter der Bundles-Grenze liegt, überspringen es und behalten ihre aktuelle Bundle bei.

Versionierungsziel-Dokumentation

Blockieren Sie Updates über semver-Linien

--disable-auto-update major, minor oder patch hält ein Gerät davon ab, ein Bundle außerhalb seiner nativen Versionslinie zu erhalten. Diese Regeln vergleichen nur Versionszahlen. Sie untersuchen keine nativen code.

Update-Typen und Versionenblockierung

Eine Kanal pro nativer Version

Set defaultChannel in each native build's Capacitor config, for example v2 or v3. Each line gets its own bundles, and an older line can stay on its last working bundle.

Versionierungsziel-Dokumentation

Wie es funktioniert

Wie Teams mit mehreren native Versionen mit Capgo liefern

Ein CI-Setup, das den live update-Zug und den Store-Zug Seite an Seite arbeiten lässt. Jeder Befehl unten stammt aus den Capgo CLI-Dokumenten

  1. Braucht der Commit eine native Build?

    build needed vergleicht Ihre native Pakete mit dem Kanal. Es druckt yes und beendet mit code 1, wenn eine Store-Veröffentlichung erforderlich ist, und no, wenn eine live update ausreicht

    npx @capgo/cli@latest build needed com.example.app --channel production
    build needed Referenz
  2. Wechseln Sie den Kanal zur Metadatenstrategie

    Machen Sie dies einmal. Von da an trägt jeder Bundle eine Mindestversion für native Geräte und Geräte darunter überspringen den Bundle

    npx @capgo/cli@latest channel set production com.example.app \
      --disable-auto-update metadata
    Dokumentation zu Versionen
  3. Hochladen Sie tägliche Live-Updates

    Behalten Sie --auto-min-update-version bei jedem Hochladen bei. --fail-on-incompatible beendet den Job, wenn der Bundle native code benötigt, die der Kanal nicht hat

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version \
      --fail-on-incompatible
    Dokumentation zur nativen Kompatibilität
  4. Die Verpackung für eine neue native Veröffentlichung hochladen

    Wenn das neue Binärdatei veröffentlicht wird, laden Sie die Verpackung ohne --fail-on-incompatible hoch. Capgo hebt den Boden so, dass ältere Builds es überspringen, und später werden die Vergleiche gegen die neuen native Pakete durchgeführt.

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version
    Native- und OTA-Kanalworkflow

Appflow-Migration

Von Ionic Appflow kommen Sie?

Appflow passte live Updates zu nativen Versionen für Sie an. In Capgo erhalten Sie das gleiche Ergebnis mit Kanälen und Versionsregeln:

  1. Erstellen Sie einen Kanal für jede nativen Linie, zum Beispiel v1 und v2.
  2. Setzen Sie defaultChannel in jeder nativen Build-Konfiguration in Capacitor auf ihren Kanal.
  3. Hochladen Sie jeden Bundle in den Kanal der nativen Linie, für die es gebaut wurde.
  4. Bleiben Sie bei --auto-min-update-version bei Uploads, damit ein Bundle, das eine neue nativen code benötigt, ältere Builds überspringt.
Appflow-Migration-Anleitung
Kanal pro nativen Linie
// capacitor.config.ts in your 2.x native builds
plugins: {
  CapacitorUpdater: {
    defaultChannel: 'v2',
  },
},

# ship a fix to 2.x users only
npx @capgo/cli@latest bundle upload --channel v2 \
  --auto-min-update-version

# 1.x devices stay on their channel's current bundle

Gemeinsame Situationen

Ein neuer nativer Plugin

Ihr 2.0-Binary fügt einen Kamera-Plugin hinzu. Hochladen Sie das Bundle, das ihn verwendet, mit --auto-min-update-version, und 1.x-Geräte überspringen es, bis die Benutzer 2.0 installieren.

Kompatibilitätsdokumente für native Anwendungen

Schrittweise Einführung

Senden Sie ein Paket an einen Anteil eines Kanals mit --rollout, beobachten Sie die Installations- und Fehlerdaten und dann fördern oder zurückrollen Sie es.

Dokumente zu progressiven Rollouts

Rückbau einer alten Version

Hören Sie auf, auf das v1-Kanal hochzuladen. Geräte auf diesem Kanal behalten ihre letzte funktionierende Bundle, während v2 weiterhin Updates erhält.

Dokumente zur Zielgruppenverfolgung

Eine Beispielanordnung mit drei native Versionen im Einsatz.

Ein Beispiel Layout mit drei native Versionen im Einsatz.

  • v3
    v3
    Neue Pakete
  • Native 2.x
    v2
    Nur Fixes
  • Native 1.x
    v1
    Keine neuen Pakete

Funktionen an v3, Fixes an v2 und nichts an v1. Geräte auf v1 behalten ihren letzten funktionierenden Bundle.

Mit Capacitor erstellte Apps

Öffentliche Apps müssen alte und neue native Versionen unterstützen

Civic-, Gesundheits- und Wetterapps können ältere Android-Versionen und verschiedene Gerätegenerationen unterstützen. Die Versionsziele halten jede native Build auf dem neuesten kompatiblen Web-Bundle ohne eine Update-Pfad für alle zu erzwingen.

e-Título-App-Icon SOCIAL

e-Titel

Eine Civic-Identitäts-App mit breiter öffentlicher Gerätekompatibilität.

Google Play-Installationen
54,9M
Ladenplatzbewertung
4.8
Conecte SUS-App-Icon MEDIZIN

Verbinde Ihre App

Eine Gesundheits-App, bei der ältere und neuere native Hüllen unterschiedliche Web-Bundles benötigen könnten.

Google Play-Installationen
27,7M
Ladenraten
4.6
Wettervorhersage-App-Icon von Windy.com WEATHER

Wettervorhersage von Windy.com

Eine Wetter-App, bei der die Gerätefunktionen und die Kartenerfassung je nach Version variieren können.

Google Play-Downloads
32,9M
Ladenraten
4.7

Kundenbeweis

Was Teams mit Capgo sagen

5.0/5 von Entwicklerteams bewertet 9,400+ Teams Lesen Sie Bewertungen

Keine Tonart @ Webincode

Entwickler, Webincode

‚Es ist ein Rettungsanker, bestimmte Geräte-IDs zu bestimmten Gruppen hinzufügen und die Änderungen nur an bestimmten Gruppen durchführen.‚

Nate van Jole

CTO, Privat

“Die Einrichtung dauerte weniger als einen Tag. Kanalbasierte Rollouts ermöglichen es mir, auf meinem eigenen Gerät zu testen, bevor etwas die Produktionsbenutzer erreicht.”

Portrait von Sergiu S

Sergiu S

Leiter der Entwicklung, drivolino GmbH

“Der Capgo Capacitor Updater-Plugin hat unsere Update-Verarbeitung vollständig transformiert. Was früher Tage dauerte, dauert jetzt nur noch Minuten.”

FAQ

Frägen Sie nach Versionen im Einsatz

Für Teams, die Benutzern helfen, die App-Store-App auf unterschiedliche Zeiten aktualisieren

Wie geht es Benutzern, die die native App nie aktualisieren?

Sie erhalten weiterhin Pakete, die mit ihrer native Version kompatibel sind. Mit der Metadatenstrategie wird ein Paket, dessen Mindestnativeversion höher ist als die ihrer, übersprungen, und sie bleiben bei ihrem aktuellen Paket.

Dokumentation zu Versionen

Ist --disable-auto-update ausreichend, um Störungen zu verhindern?

Nein. Die Versionsregeln vergleichen nur Versionsnummern, daher wird auch ein native Änderung in einem Minor- oder Patch-Release ausgegeben. Verwenden Sie --fail-on-incompatible oder --auto-min-update-version, die Ihre native Pakete überprüfen.

Native-Kompatibilitätsdokumente

Wie weiß CI, ob eine Änderung eine Store-Release benötigt?

Führen Sie einen build auf oder verwenden Sie bundle releaseType gegen den Kanal. Beide vergleichen native Paketmetadata. Sie sehen jedoch nicht jede Änderung unter ios/, android/ oder capacitor.config, daher sollten diese Pfade in Git ebenfalls gesperrt werden.

Wählen Sie OTA oder native build in CI

Wir wechseln von Ionic Appflow. Können wir Updates mit Versionsübereinstimmung behalten?

Ja. Verwenden Sie einen Kanal pro native Linie mit defaultChannel oder die Metadatenstrategie mit --auto-min-update-version. Die Appflow-Migration-Anleitung führt durch die Einrichtung.

Appflow-Migration-Anleitung

Was, wenn bereits ein inkompatibles Bundle ausgegeben wurde?

Setzen Sie den Kanal wieder auf das letzte kompatible Bundle aus seiner Geschichte oder zwingen Sie den internen Bundle und schicken Sie den native Build. notifyAppReady() rollt ein Bundle zurück, das nicht startet, aber es ist kein Ersatz für kompatible native code.

Rollbacks-Dokumente

Jede native Version auf einem Bundle, das es ausführen kann, halten

Stellen Sie die Metadatenstrategie und eine Kompatibilitätsprüfung in CI während der 14-tägigen kostenlosen Testphase ein. Keine Kreditkarte erforderlich.