Zum Inhalt springen

Native + OTA Kanal-Workflow

Eine gängige Capgo-Konfiguration verwendet einen Entwicklungskanal Produktionskanal Produktionskanal Kanal. CI lädt alle OTA-Bundles hoch, devdann bewirbt sie auf production als du bereit bist. Teams fügen oft --fail-on-incompatible damit CI versehentlich keine lebende Aktualisierung versendet, die neue native code benötigt.

Dieses Dokument beantwortet die Nachfrage: Was tust du, wenn du absichtlich eine Paketversion benötigst, die mit den aktuellen native Paketen des Kanals nicht kompatibel ist?

Wenn du den Hintergrund über, warum Capgo native Pakete vergleicht, wissen möchtest, beginne mit Native Kompatibilität. Für eine vollständige CI-Zweig, der OTA vs Capgo Build automatisch auswählt, siehe 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 Voreinstellung für beide Kanäle bei alltäglichen OTA-Uploads. Es vergleicht die native Pakete in der zu hochladenden Bundle mit dem derzeit im Kanal lebenden Bundle Wenn sie sich unterscheiden, beendet die Upload mit einem Fehlercode und nichts wird verschicktAlltägliche OTA (Flag behalten)

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

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

Terminal-Fenster

Auf die 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). Wenn der Kanal noch nicht auf metadata ist, können Sie --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)

Intentionaler nativer Bump (setzen Sie die Flagge einmal ab)

Sektion mit dem Titel „Intentionaler nativer Bump (setzen Sie die Flagge einmal ab)“

Sie context: HTML-Textfragment aus einem längeren Capgo-UI-String (Elternschlüssel `you_definition`). Seite/Bereich: Capgo-Marketingwebsite. Rolle: Langen Marketing- oder Rechtsparagraphen. Gesehen in: Seite Disclaimer.astro, Seite Rückkehr.astro. Nachrichtenschlüssel `you_definition` (Sie Definition). ein Bundle hochladen, das eine neue native code benötigt, während man --fail-on-incompatible. Diese Flagge existiert, um genau diesen Fall zu blockieren. Wenn ein Plugin, die Capacitor Version oder eine andere native Abhängigkeit absichtlich geändert wurde:

  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 das dev Wenn auch dieser Kanal absichtlich native Baseline erhält. Nach diesem Wechsel müssen alle Uploads an den Kanal die neue native Pakete enthalten --auto-min-update-version oder --min-update-version.

  2. Kontext: HTML-Textfragment aus einem längeren Capgo-UI-String (Elternschlüssel `alternatives_cta_questions`). Seite/Bereich: Vergleichsseite für Capacitor-Live-Updates. Rolle: Langwierige Marketing- oder Rechtsparagraphen. Gesehen in: Seite alternatives.astro. Produkt- und Markenbegriffe von Capgo sowie Entwicklertermen bleiben genau erhalten. Nachrichtenschlüssel `alternatives_cta_questions` (Alternativen-CTA-Fragen). | HTML-Textfragment aus einem längeren Capgo-UI-String (Elternschlüssel `appflow_cta_questions`). Seite/Bereich: Appflow-Vergleichs- und Migration-Marketing-Kopie. Rolle: Langwierige Marketing- oder Rechtsparagraphen. Gesehen in: Seite ionic-appflow.astro. Produkt- und Markenbegriffe von Capgo sowie Entwicklertermen bleiben genau erhalten. Nachrichtenschlüssel `appflow_cta_questions` (Appflow-CTA-Fragen). | HTML-Textfragment aus einem längeren Capgo-UI-String (Elternschlüssel `capwesome_cta_questions`). Seite/Bereich: Capawesome-Vergleichsseite. Rolle: Langwierige Marketing- oder Rechtsparagraphen. Gesehen in: Seite capwesome.astro. Produkt- und Markenbegriffe von Capgo sowie Entwicklertermen bleiben genau erhalten. Nachrichtenschlüssel `capwesome_cta_questions` (Capawesome-CTA-Fragen). | Seite/Bereich: Consulting-Dienste-Seite. Rolle: Untertitel oder Slogan. Gesehen in: Seite consulting.astro. Produkt- und Markenbegriffe von Capgo sowie Entwicklertermen bleiben genau erhalten. Nachrichtenschlüssel `consulting_faq_subtitle` (Consulting-Faq-Untertitel). | Seite/Bereich: Appflow-Vergleichs- und Migration-Marketing-Kopie. Rolle: Kurzer UI-Label oder Navigationselement. Gesehen in: Seite ionic-appflow.astro, Seite ionic-enterprise-plugins.astro, Seite solutions/ionic-enterprise-plugins.astro. Nachrichtenschlüssel `appflow_plugins_or` (Appflow-Plugins-oder)

    Das native Binärdatei versenden

  3. Das iOS/Android-App erstellen, das die neuen Plugins oder native Änderungen enthält. Bis die Benutzer die Binärdatei installieren, können sie die Pakete nicht sicher ausführen, die auf jenen native Paketen basieren --fail-on-incompatible)

    Die entsprechende OTA-Baseline hochladen (keine Änderungen an der Baseline erforderlich)
    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 inkompatiblen native-Bundle pushen? --fail-on-incompatible Nein. Wenn sich die native Pakete des Uploads von den Kanal-Bundles unterscheiden, versagt der Flag auf Absicht. Für eine geplante native Erhöhung, lassen Sie den Flag auf dieser einen Upload (und verwenden Sie

Wenn Sie können).

Ein einmaliger Upload ohne den Flag ist die richtige Vorgehensweise? --auto-min-update-version Kann ich behalten

Wenn Sie können).

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 dem Flag noch aufweisen?

Abschnitt mit dem Titel "Was passiert, wenn ich das neue native Bundle mit dem Flag noch aufweisen?"

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

WegWannUpload-Flags
OTAJS nur; native Pakete entsprechen dem Kanal--fail-on-incompatible + --auto-min-update-version (erforderlich, wenn der Kanal auf metadata)
Nativ-BaselineNeuer 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 aus 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 CI-Branching Zielversionierung zum Kontext von Capgo-Lösungen. Rolle: Abschnitt oder Seitenüberschrift. Gesehen in: Seite Lösungen/Zielversionierung.astro. Nachrichtenschlüssel `solutions_version_targeting_title` (Lösungen Zielversionierung Titel). | Seite/Lösungen: Capgo-Lösungen-Marketingseite. Rolle: Kurzer UI-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 Hochladenflagge