Zum Inhalt springen

Native + OTA Kanal Workflow

Eine gängige Capgo-Konfiguration verwendet einen Entwicklungskanal Einen Produktionskanal Kanal. CI lädt alle OTA-Bundles hoch, devdann promotet es zu production als Sie bereit sind. Teams fügen oft hinzu --fail-on-incompatible damit CI versehentlich einen Live-Update versendet, der neue native code benötigt.

Diese Seite beantwortet die Nachfrage: Was tun Sie, wenn Sie absichtlich einen Bundle benötigen, das mit den aktuellen native Paketen des Kanals nicht kompatibel ist?

Wenn Sie den Hintergrund, warum Capgo native 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, siehe Auto OTA oder Native.

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

Befehlszeichenfenster
npx @capgo/cli@latest channel add production com.example.app
npx @capgo/cli@latest channel add dev com.example.app
KanalWer bekommt esHäufige Uploads
devIntern / QA BuildsJeder CI-Push von JS (und absichtliche native Baselines)
productionBenutzer des SpeichersErstellt oder hochgeladen, wenn die Veröffentlichung bereit ist

--fail-on-incompatible ist eine gute Voreinstellung 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 der Upload mit einem Nicht-Null-Status und nichts wird verschickt.Jeden Tag OTA (Flag behalten)

Sektion mit dem Titel “Jeden Tag OTA (Flag behalten)”

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

Fenster des Terminal

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). 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)

Intentionale nativer Bump (setzen Sie die Flagge einmal ab)

Sektion mit dem Titel „Intentionale 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: Langes Marketing- oder Rechtsparagraph. Gesehen in: Seite Disclaimer.astro, Seite Rückkehr.astro. Nachrichtenschlüssel `you_definition` (Sie Definition). einen 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 wird:

  1. Das passende native Binärdatei (App Store / Play Store, oder Capgo Build).
  2. Die 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, fügen Sie --fail-on-incompatible Wieder auf normale OTA CI (und behalten Sie --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 für dev Wenn 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. Kontext: HTML-Textfragment aus einem längeren Capgo-UI-String (Elternschlüssel `alternatives_cta_questions`). Seite/Bereich: Vergleichsseite für lebendige Updates von Capacitor. Rolle: Langer Marketing- oder Rechtsparagraph. Gesehen in: Seite alternatives.astro. Bewahren Sie Capgo-Produkt- und -Markenbegriffe sowie Entwicklertitel genau auf. 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-Marketingtext. Rolle: Langer Marketing- oder Rechtsparagraph. Gesehen in: Seite ionic-appflow.astro. Bewahren Sie Capgo-Produkt- und -Markenbegriffe sowie Entwicklertitel genau auf. 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: Langer Marketing- oder Rechtsparagraph. Gesehen in: Seite capwesome.astro. Bewahren Sie Capgo-Produkt- und -Markenbegriffe sowie Entwicklertitel genau auf. Nachrichtenschlüssel `capwesome_cta_questions` (Capawesome-CTA-Fragen). | Seite/Bereich: Seite für Beratungsdienste. Rolle: Untertitel oder Slogan für eine Abschnittsüberschrift. Gesehen in: Seite consulting.astro. Bewahren Sie Capgo-Produkt- und -Markenbegriffe sowie Entwicklertitel genau auf. Nachrichtenschlüssel `consulting_faq_subtitle` (Beratungsdienste-Faq-Untertitel). | Seite/Bereich: Appflow-Vergleichs- und -Migration-Marketingtext. Rolle: Kurzer UI-Label oder Navigationspunkt. 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. Erstellen und übermitteln Sie die iOS/Android-Anwendung, die die neuen Plugins oder native Änderungen enthält. Bis die Benutzer die Binärdatei installieren, können sie die Anwendung nicht sicher ausführen, die auf diese native Pakete angewiesen ist --fail-on-incompatible)

    Das entsprechende OTA-Baseline (kein
    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 überprüfen die Veröffentlichungen, die auf diesem Baseline aufbauen.

  4. Fortsetzen geschützte OTA-Uploads

    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 Kann ich --fail-on-inkompatibel behalten und trotzdem einen inkompatiblen native-Bundle pushen?

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). --auto-min-update-version Ein einmaliger Upload ohne den Flag ist die richtige Vorgehensweise?

FAQ

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

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

Ja, wenn das Ihrem Prozess entspricht. Führen Sie die gleichen Regeln auf jedem Kanal durch pro Kanal: Die Kompatibilitätsprüfung erfolgt gegenüber dem, was auf dem Zielkanal live ist. 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 Kanal, der die neuen native Pakete aufnehmen muss.

Was passiert, wenn ich das neue native Bundle mit dem Flag noch aufgehe?

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

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

WegWannFlags hochladen
OTAJS nur; native Pakete entsprechen dem Kanal--fail-on-incompatible + --auto-min-update-version (erforderlich, 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 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 context: Seite/Bereich: Capgo-Lösungen-Marketing-Seite. Rolle: Abschnitts- oder Seitenüberschrift. Gesehen in: Seite Lösungen/Zielversionierung.astro. Nachrichtenschlüssel `solutions_version_targeting_title` (Lösungen-Zielversionierung-Titel). | Seite/Bereich: Capgo-Lösungen-Marketing-Seite. Rolle: Kurzer Benutzeroberflächen-Bezeichner oder Navigationspunkt. 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 Hochladeflagge