Zum Inhalt springen

Gemeinsame Update-Probleme

GitHub

Wenn eine Aktualisierungskontrolle fehlschlägt, Capgo gibt normalerweise einen error code und einen message in dem /updates Antwort. Diese Seite erklärt die häufigsten Fehler und die schnellsten Lösungen.

  • no_new_version_available ist ein normaler Zustand und kein Fehler.
  • Viele "Update gefunden, aber nicht angewendet"-Berichte sind Ablehnungen aufgrund von Richtlinien/ Konfigurationen und nicht Cache-Lag, insbesondere wenn die Antwort einen expliziten error code
  • Verwenden npx @capgo/cli@latest app debug Sie während der Wiederholung des Problems, um Anforderungs-/Antwortdetails zu sehen.

Ursache

Die App hat Blockiert Anfragen an die Infrastruktur des Anbieters enabled und die Anfrage stammt aus einem bekannten Google- oder Apple-Datencenter-IP-Bereich. Capgo blockiert diese Anfragen auf /updates, /stats, und /channel_self um sicherzustellen, dass der vom Anbieter stammende Traffic nicht als Geräte-traffic behandelt wird.

Lösung

  • Wiederholen Sie die Aktualisierung von einem physischen Gerät auf einem normalen Benutzer-Netzwerk.
  • Verwenden Sie während dieser Schutzfunktion nicht Cloud-Hosted-Proben oder Anbieter-Datencenter-Runner für Updater, Statistiken oder Channel-Self-Überprüfungen.
  • Wenn dieser Traffic absichtlich ist, öffnen Sie das Informationen Registerkarte und schalten Sie es aus Blockanbieter-Infrastrukturanfragen. Aktivieren Sie es erneut, wenn der Test abgeschlossen ist.

Neue Apps haben diese Sicherheit standardmäßig aktiviert. Apps, die vor der Einführung dieser Einstellung erstellt wurden, haben sie deaktiviert, bis Sie sie aktivieren.

Ausgabedetails

  • /updates erhält die Aktualisierungsvertragsvereinbarung und gibt HTTP 200. Sein Körper enthält error, message, kind: "blocked", und provider ("google" oder "apple").
  • /stats oder /channel_self und 429 mit dem gleichen Fehler code. Behandeln Sie dies als eine absichtliche Richtlinienblockierung und nicht als eine vorübergehende Wiederholungsbedingung.

Ursache

Ihr Kanal blockiert größere Updates (disable_auto_update = major) und die Ziel-Bundle-Major ist über der Geräte-Basisversion.

Typisches Symptom

version: 1.0.8 mit old: 0.0.0 bedeutet, dass das Gerät die Basisversion 0.0.0meldet, sodass größere Updates abgelehnt werden.

Wie interpretiert man es?

Der Backend vergleicht die Hauptversionen mithilfe der Geräte-Basisversion old und Ziel version.

  • Wenn Ziel ist 1.0.1muss die Basis-Hauptversion 1 (zum Beispiel) 1.0.0).
  • Wenn Ziel ist 10.0.1, muss die Hauptversion (baseline major) sein 10 (zum Beispiel) 10.0.0).

Fix-Option A (empfohlen): Passen Sie die Geräte-Hauptversion (baseline major) an

Setzen Sie plugins.CapacitorUpdater.version in capacitor.config.* so dass seine MAJOR der Bundle-MAJOR entspricht, den Sie liefern möchten (zum Beispiel) 1.0.0 für 1.0.1, 10.0.0 für 10.0.1).

Dann wenden Sie diese Konfiguration auf die installierte App an:

  1. Ausführen npx cap sync.
  2. Rebuild und die native App neu installieren.

Option B: Entspannen Sie die Kanalrichtlinie

Zulassen Sie die automatischen Updates zwischen großen Versionen im Kanal-Einstellungen (nur, wenn diese Rollout-Strategie absichtlich ist).

Zugehörige Dokumentation:

Ursache

Die Kanalrichtlinie ist strenger (minor oder patchWeniger als die angebotene Aktualisierung.

  • minor blockiert, wenn das Zielbundle eine andere Haupt- oder Minorversion als die Geräte- native Baseline (version_build). Beispiel: 1.2.3 -> 1.3.0 ist blockiert.
  • patch blockiert jede Änderung der Haupt-, Minor- oder Patchnummer von version_buildNur Suffixänderungen sind während MAJOR.MINOR.PATCH identisch, wie z.B. 1.0.0-beta.1 -> 1.0.0-beta.2 oder 1.0.0+build.1 -> 1.0.0+build.2.

context

  • Alternativen CTA Fragen
  • change channel policy in dashboard/CLI.

Appflow-Vergleichs-/Migrationsmarketingtext. Rolle: Langer Marketing- oder Rechtsparagraph. Gesehen in: Seite ionic-appflow.astro. Produkt- und Markenbezeichnungen von Capgo und Entwicklertools werden genau beibehalten. Nachrichtenschlüssel `appflow_cta_questions` (Appflow-CTA-Fragen). | HTML-Textfragment aus einer längeren Capgo-UI-Zeichenfolge (Elternschlüssel `appflow_cta_questions`). Seite/Bereich: Appflow-Vergleichs-/Migrationsmarketingtext. Rolle: Langer Marketing- oder Rechtsparagraph. Gesehen in: Seite ionic-appflow.astro. Produkt- und Markenbezeichnungen von Capgo und Entwicklertools werden genau beibehalten. Nachrichtenschlüssel `appflow_cta_questions` (Appflow-CTA-Fragen). | HTML-Textfragment aus einer längeren Capgo-UI-Zeichenfolge (Elternschlüssel `capwesome_cta_questions`). Seite/Bereich: Capawesome-Vergleichsseite. Rolle: Langer Marketing- oder Rechtsparagraph. Gesehen in: Seite capwesome.astro. Produkt- und Markenbezeichnungen von Capgo und Entwicklertools werden genau beibehalten. Nachrichtenschlüssel `capwesome_cta_questions` (Capwesome-CTA-Fragen). | HTML-Textfragment aus einer längeren Capgo-UI-Zeichenfolge (Elternschlüssel `consulting_faq_subtitle`). Seite/Bereich: Beratungsdienste-Seite. Rolle: Abschnittstitel oder Slogan. Gesehen in: Seite consulting.astro. Produkt- und Markenbezeichnungen von Capgo und Entwicklertools werden genau beibehalten. Nachrichtenschlüssel `consulting_faq_subtitle` (Beratungsdienste-Faq-Untertitel). | Seite/Bereich: Appflow-Vergleichs-/Migrationsmarketingtext. 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).

Ursache

Der Kanal verwendet eine Zielgruppenzugehörigkeit auf der Grundlage von Metadaten (version_number) und die Gerätebasis ist unter der erforderlichen min_update_version.

Lösung

  • Passen Sie die Gerätebasis (CapacitorUpdater.version) mit der installierten native App-Version an oder
  • anpassen Sie min_update_version den Kanalstrategie.

Zugehörige Dokumente:

Ursache

Der Kanal verhindert Downgrade unterhalb der nativen Basislinie.

Lösung

  • Laden Sie eine Bundle-Version hoch, die der nativen Basislinie mindestens gleich ist, oder
  • deaktivieren Sie die "unter nativ"-Downgrade-Schutzfunktion für diesen Kanal.

Verwandte Dokumente:

Ursache

Der ausgewählte/Standardkanal erlaubt keine Geräte-Selbstzuweisung.

Lösung

  • Verwenden Sie einen anderen Kanal mit Selbstzuweisung aktiviert oder
  • machen Sie den Kanal öffentlich / aktivieren Sie die Selbstzuweisung.

Verwandte Dokumente:

Ursache

Gerätegrundversion fehlt (unknownoder nicht.

gültige semver

  • Lösung plugins.CapacitorUpdater.version Setzen Sie es auf ein gültige Semver wie 1.2.3.
  • Synchronisiere und baue die native App neu.

Verwandte Dokumente:

Ursache

Der Updater-Plugin-versions ist zu alt für die aktuellen Backend-Anforderungen.

Lösung

  • Aktualisieren @capgo/capacitor-updater.
  • Ausführen npx cap sync.
  • Rebuild und native App neu installieren.

Ursache

Der Kanal hat für diese Plattform Updates deaktiviert.

Lösung

  • Aktivieren Sie die Plattform-Taste im Kanal.

disable_prod_build / disable_dev_build / disable_device / disable_emulator

Abschnitt mit dem Titel „disable_prod_build / disable_dev_build / disable_device / disable_emulator“

Ursache

Der Kanal verbietet die aktuelle Build-Art oder die Zielplattform.

Lösung

  • Passen Sie die Kanaloptionen an Ihre Testziele an.allow_prod, allow_dev, allow_device, allow_emulator"

Ursache

Die Verschlüsselungsschlüssel für das Bundle und den Geräteschlüssel stimmen nicht überein.

Lösung

  • Verwenden Sie denselben Verschlüsselungsschlüssel/öffentlichen Schlüssel in der App-Konfiguration und im Bundle-Verschlüsselungsworkflow.

Ursache

Für das Gerät wurde kein gültiger Kanal gelöst.

Lösung

  • Setzen Sie einen Cloud-Standardkanal, oder
  • in Testbuilds, oder defaultChannel setzen Sie
  • Kanalüberschreibung für Gerät zuweisen.

Zugehörige Dokumente:

on_premise_app

Kanäle

Abschnitt mit dem Titel „On-Premise-App“

Ursache on_premise_appDer Backend-Server gab HTTP 429 zurück mit

  1. App ID does not exist in Capgo Die App-ID existiert nicht in __CAPGO_KEEP_0__ app_id — der
  2. von dem Gerät gesendete — the app exists but is configured for self-hosted updates, so the Capgo cloud endpoint refuses to serve it.
  3. Die Organisationseinheit ist abbestellt. — Die Organisationseinheit der App hat keine aktive Abonnement mehr.

Ein häufiger Fehler.

Eine Tippfehler in plugins.CapacitorUpdater.appId (in capacitor.config.ts) oder eine Mismatch mit der im Capgo Dashboard registrierten App-ID. Der Backend kann nicht zwischen einer unbekannten App und einer On-Premise-App unterscheiden, daher gibt es immer das gleiche Fehler code.

Behebung.

  • Überprüfe, dass app_id genau mit dem im Capgo Dashboard angezeigten Wert übereinstimmt (kasseempfindlich).
  • Wenn die App noch nicht registriert ist, führe npx @capgo/cli@latest app add.
  • Wenn die App absichtlich On-Premise ist, setze plugins.CapacitorUpdater.updateUrl deine eigene Update-Endpunkt anstelle der Capgo Cloud-URL.
  • Wenn sich das Organisationen-Abonnement abgelaufen hat, erneuern oder den Plan aufwerten.
  1. Bestätigen Sie, dass die App-ID und der Kanal für die Build korrekt sind.
  2. Bestätigen CapacitorUpdater.version passt sich der installierten nativen App-Version an.
  3. Bestätigen Sie, dass die Kanalrichtlinie (disable_auto_update) der beabsichtigten Rollout entspricht.
  4. Bestätigen Sie, dass die Plattform-/Build-Zielfelder dies Gerät zulassen.
  5. Ausführen npx @capgo/cli@latest app debug und Fehler im Backend lesen code.

Wenn Sie native Plugin-Arbeit planen, verbinden Sie es mit Verwendung von @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-aktualisierer Für die native Fähigkeit in Verwendung von @__CAPGO_KEEP_0__/__CAPGO_KEEP_1__-aktualisierer, Using @capgo/capacitor-updater for the native capability in Using @capgo/capacitor-updater, Capgo Plugin Directory for the product workflow in Capgo Plugin Directory, Capacitor Plugins von Capgo für die Implementierungsdetails in Capacitor Plugins von Capgo Plugins hinzufügen oder aktualisieren für die Implementierungsdetails in Plugins hinzufügen oder aktualisieren, und Alternativen zu Ionic Enterprise Plugins für den Produktworkflow in Alternativen zu Ionic Enterprise Plugins.