Zum Inhalt springen

Native + OTA Kanalworkflow

Ein gängiger Capgo Setup verwendet eine Entwicklungskanal Produktionskanal context: Seite/ Bereich: Produktseite für Live-Updates. Rolle: Kurzer Benutzeroberflächentitel oder Navigationspunkt. Nachrichtenschlüssel `live_update_dynamic_label_production` (Live-Update-Dynamischer Bezeichner Produktionskanal). Kanal. CI lädt alle OTA-Bundles hoch und devdann promotet sie zu production wenn Sie bereit sind. Teams fügen oft hinzu --fail-on-incompatible damit CI versehentlich keine lebende Aktualisierung mit neuen nativen code versendet.

Diese Seite beantwortet die Nachfrage: Was tun Sie, wenn Sie absichtlich eine Paketversion benötigen, die mit den aktuellen nativen Paketen des Kanals inkompatibel ist?

Wenn Sie die Hintergrundinformationen über, warum Capgo nativen Pakete vergleicht, benötigen, beginnen Sie mit Native Kompatibilität. Für eine vollständige CI-Zweig, der OTA vs Capgo Build automatisch auswählt, sehen Sie sich bitte Auto OTA oder Native.

Diese Anleitung geht davon aus, dass die dev und production Kanäle bereits existieren. Erstellen Sie sie zuerst, wenn nötig:

Terminalfenster
npx @capgo/cli@latest channel add production com.example.app
npx @capgo/cli@latest channel add dev com.example.app
KanalWer bekommt esTypischer Upload
devInterne / QA-BuildsJeder CI-Push von JS (und absichtliche native Baselines)
productionBenutzer des SpeichersWird nur dann hochgeladen, wenn das Release bereit ist

--fail-on-incompatible ist eine gute Standard-Einstellung für beide Kanäle für alltägliche OTA-Uploads. Es vergleicht die native Pakete in der zu hochladenden Bundle mit dem derzeit live auf diesem Kanal verfügbaren Bundle Wenn sie sich unterscheiden, verlässt die Upload mit einem nicht-null-Wert und nichts wird verschicktAlltägliche OTA (Flag behalten)

Abschnitt mit dem Titel “Alltägliche OTA (Flag behalten)”

Wenn der Änderung nur JavaScript-basiert ist und die native Pakete dem Kanal entsprechen:

Terminal-Fenster

Zur Zwischenablage kopieren
npx @capgo/cli@latest bundle upload com.example.app \
--channel production \
--fail-on-incompatible \
--auto-min-update-version

--fail-on-incompatible blockt einen ungewollten nativen Abdrift. --auto-min-update-version erforderlich bei jedem Upload, sobald das Kanal den metadata Strategie (empfohlen unten) verwendet. Wenn der Kanal noch nicht auf metadata ist, können Sie dies --auto-min-update-version bis Sie umschalten.

Optional CI-Sperre vor dem Upload:

Terminalfenster
npx @capgo/cli@latest bundle releaseType com.example.app --channel production
# → OTA safe to upload with --fail-on-incompatible
# → native stop; ship a native binary first (see below)

Intentionale nativer Bump (setzen Sie die Flagge einmal ab)

Abschnitt mit dem Titel "Intentionale nativer Bump (setzen Sie die Flagge einmal ab)"

Sie kann nicht ein Bundle hochladen, das eine neue native code benötigt, während man --fail-on-incompatible. Diese Flag ist vorhanden, um genau diesen Fall zu blockieren. Wenn ein Plugin, die Capacitor Version oder eine andere native Abhängigkeit absichtlich geändert wird:

  1. Das passende natives Binärdatei (App Store / Play Store, oder Capgo Build).
  2. Das passende JS-Bundle hochladen ohne --fail-on-incompatible.
  3. Vorziehen --auto-min-update-version mit dem Kanal auf der metadata Strategie, damit Geräte, die noch auf der alten Binärdatei sind, das neue Bundle nicht erhalten, bis sie die neue App installieren.
  4. Nach dieser Basis-Hochladung, legt man --fail-on-incompatible Wieder auf normale OTA CI (und behalten --auto-min-update-version Während der Kanal weiterhin auf metadata).
  1. Eine einmalige pro Kanal: Aktivieren Sie die Metadaten-Gatterung

    Terminal-Fenster
    npx @capgo/cli@latest channel set production com.example.app --disable-auto-update metadata

    Wiederholen Sie dies für dev ob dieser Kanal auch absichtlich native Grundlagen erhält. Nach diesem Wechsel müssen alle Uploads an den Kanal die neue native Basis enthalten --auto-min-update-version oder --min-update-version.

  2. Kanalmeldung

    Die native Binärdatei versenden

  3. Die iOS/Android-App erstellen und einreichen, die die neuen Plugins oder native Änderungen enthält. Bis die Benutzer diese Binärdatei installieren, können sie eine Abhängigkeit von diesen native Paketen nicht sicher ausführen. --fail-on-incompatible)

    Die entsprechende OTA-Basis hochladen (keine
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --auto-min-update-version

    Dies registriert die neuen native Pakete auf dem Kanal. Später bundle releaseType / --fail-on-incompatible prüfen die Baseline.

  4. OTA-Uploads wieder aufnehmen

    Spätere JS-only-Veröffentlichungen verwenden beide Flags erneut:

    Terminal-Fenster
    npx @capgo/cli@latest bundle upload com.example.app \
    --channel production \
    --fail-on-incompatible \
    --auto-min-update-version

und kann ich trotzdem einen native-inkompatiblen Bundle pushen? --fail-on-incompatible Kann ich --fail-on-inkompatibel lassen und trotzdem einen native-inkompatiblen Bundle pushen?

Nein. Wenn die Uploads native Pakete von den des Kanals live Bundle abweichen, versagt der Flag den Befehl absichtlich. Für eine gezielte native Bump, lassen Sie den Flag auf dieser einen Upload (und verwenden Sie

wenn Sie können). --auto-min-update-version Ist eine einmalige Upload ohne den Flag die richtige Vorgehensweise?

Kann ich --fail-on-inkompatibel lassen und trotzdem einen native-inkompatiblen Bundle pushen?

Kann ich --fail-on-inkompatibel lassen und trotzdem einen native-inkompatiblen Bundle pushen?

Ja. Das ist die unterstützte Methode, um die native Basis des Kanals nach dem Versand eines neuen Binärs voranzutreiben. Lassen Sie den Flag auf jedem anderen OTA-Upload, damit unbeabsichtigter native Drift immer noch CI versagt.

Muss ich zuerst auf den Entwicklungs-Channel hochladen und dann auf den Produktions-Channel? dev Zuerst, dann production?

Abschnitt mit dem Titel "Muss ich zuerst auf den Entwicklungs-Channel hochladen und dann auf den Produktions-Channel?"

Ja, wenn das Ihrem Prozess entspricht. Führen Sie die gleichen Regeln auf jedem Channel durch pro Channel: Die Kompatibilitätsprüfung erfolgt gegen das aktuelle Live-Content auf dem Ziel-Channel. Fördern oder hochladen Sie nur nachdem production nur nachdem dev sich gut anfühlt, und verwenden Sie eine native-Baseline-Hochladung (keine --fail-on-incompatible) auf jedem Channel, das die neuen native Pakete aufnehmen muss.

Was passiert, wenn ich das neue native Bundle mit der Flagge hochlade?

Abschnitt mit dem Titel "Was passiert, wenn ich das neue native Bundle mit der Flagge hochlade?"

Der CI-Fehler und Capgo werden nicht geliefert. Das ist die erwartete Ausgabe. Entweder war der Fehler versehentlich (korrigieren Sie die native Pakete und versuchen Sie es erneut als OTA), oder es war absichtlich (verwenden Sie den native Weg oben).

PfadWennUpload-Flags
OTAJS nur; native Pakete entsprechen dem Kanal--fail-on-incompatible + --auto-min-update-version Wird benötigt, wenn der Kanal auf metadata)
Native BasisNeuer natives Binär + passende JS-BundleNein --fail-on-incompatible; behalten --auto-min-update-version

Referenz für Upload, Kompatibilität, releaseType und verwandte Flags.

Abschnitt mit dem Titel “Fortsetzung von Native + OTA-Kanal-Workflow”

Wenn Sie Native + OTA-Kanal-Workflow verwenden Native + OTA-Kanal-Workflow um Live-Updates sicher über Native-Ausgaben zu halten, verbinden Sie es mit Native-Kompatibilität zur Verwendung von Paketvergleichsregeln Auto OTA oder Native zur Verwendung von CI-Branching Zielversionierung zum Kontext von Version-Targeting (Seite/Area: Capgo-Lösungen-Marketing-Seite. Rolle: Abschnitt oder Seiteüberschrift. Gesehen in: Seite Lösungen/Zielversionierung.astro. Nachrichtenschlüssel `solutions_version_targeting_title` (Lösungen-Zielversionierung-Titel). | Seite/Area: Capgo-Lösungen-Marketing-Seite. Rolle: Kurzer Benutzerschnittstelle-Label oder Navigationselement. Gesehen in: Seite Lösungen/Zielversionierung.astro. Nachrichtenschlüssel `solutions_version_targeting` (Lösungen-Zielversionierung)) Capgo CLI bundle reference __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ Bundle-Referenz zur Verwendung von Uploadflags.