Zum Inhalt springen

Rollbacks

Während Capgo-Live-Updates es Ihnen ermöglichen, Verbesserungen und Fixes schnell an Ihre Benutzer zu liefern, gibt es Situationen, in denen Sie auf eine vorherige Version Ihrer App zurückkehren müssen. Vielleicht wurde durch eine neue Aktualisierung ein unerwarteter kritischer Fehler eingeführt, oder vielleicht möchten Sie eine bestimmte Änderung während Sie an einer Lösung arbeiten zurücksetzen.

Capgo bietet mehrere Möglichkeiten, die Builds eines Kanals zu verwalten und die Version Ihrer App zu steuern, die Benutzer erhalten, einschließlich manueller Rücksetzmechanismen und automatischer Sicherheitsmechanismen.

Capgo includes a built-in safety mechanism to protect your users from broken updates. If a JavaScript error occurs before the notifyAppReady() __CAPGO_KEEP_0__ enthält eine integrierte Sicherheitsmechanismus, um Ihre Benutzer vor beschädigten Updates zu schützen. Wenn ein JavaScript-Fehler vor der Aufrufung des Methoden auftritt, wird der Plugin automatisch auf die vorherige funktionierende Version zurückgesetzt.

Wenn ein neuer Update heruntergeladen und angewendet wird, Capgo erwartet, dass Ihre App innerhalb eines konfigurierbaren Zeitrahmens aufruft, um zu bestätigen, dass das Update erfolgreich geladen wurde. Diese Methode signalisiert, dass: notifyAppReady() Das JavaScript-Bundle wurde ohne kritische Fehler geladen

  • Die Kernfunktion Ihrer App funktioniert
  • Das Update ist sicher zu behalten
  • Wenn

nicht aufgerufen wird, weil JavaScript abstürzt oder ein kritischer Fehler auftritt, __CAPGO_KEEP_0__ wird: notifyAppReady() is not called due to a JavaScript crash or critical error, Capgo will:

  1. Automatisch auf das vorherige funktionierende Bundle zurückkehren
  2. Das problematische Update als fehlgeschlagen markieren, um es zu verhindern, dass es wieder angewendet wird
  3. Automatische Rückkehr zum vorherigen funktionierenden Bundle
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

Konfiguration der Timeout-Einstellung

Sie können festlegen, wie lange __CAPGO_KEEP_0__ wartet, bis

in Ihrer __CAPGO_KEEP_0__-Konfiguration:

You can configure how long Capgo waits for notifyAppReady() __CAPGO_KEEP_0__ appReadyTimeout Capacitor

{
"plugins": {
"CapacitorUpdater": {
"appReadyTimeout": 10000
}
}
}

Die appReadyTimeout Wert ist in Millisekunden angegeben. Die Standardzeitüberschreitung beträgt typischerweise 10 Sekunden, aber Sie können diese auf Ihre Anwendungsinitialisierungsanforderungen anpassen. Wenn Ihre Anwendung aufgrund komplexer Initialisierungsprozesse länger lädt, möchten Sie möglicherweise diesen Wert erhöhen.

Jedes Mal, wenn Sie eine neue Version hochladen und ihr einen Kanal zuweisen, speichert Capgo eine Historie dieser Versionen. Wenn Sie eine bestimmte Aktualisierung rückgängig machen müssen, können Sie eine dieser vorherigen Versionen auswählen, um sie erneut auf den Kanal zu deployen.

Rückgängigmachungs-UI

Hauptsächlich wird die Rückgängigmachung über die Rückgängigmachungs-Oberfläche erfolgen, die sich im 4. Tab (Historie) befindet, wenn Sie einen Kanal im Capgo Dashboard ansehen. Diese Oberfläche bietet einen umfassenden Überblick über alle verfügbaren Versionen des Kanals, sodass Sie leicht eine vorherige Version auswählen und rückgängig machen können.

Um mit der Historie-Taste zurückzugehen:

  1. Anmelden im Capgo Dashboard.

  2. Zum ‘Kanälen’-Sektion navigieren.

  3. Den Namen des Kanals klicken, auf den Sie zurückgehen möchten.

  4. Gehe zur 4. Registerkarte (Historie) in der Kanalansicht.

  5. Finde das Build, das du zurücksetzen möchtest, in der Buildhistorie.

  6. Wähle dieses Build aus, um es zum aktiven Build für den Kanal zu machen.

  7. Bestätige, dass du zu diesem Build zurückrollen möchtest.

Als zweite Möglichkeit kannst du auch direkt von der ersten Registerkarte aus zurückrollen, indem du das Crown-Icon neben jedem Build in der Buildhistorie des Kanals anklickst:

  1. Finde in der ersten Registerkarte der Kanalansicht das Build, das du zurücksetzen möchtest.
  2. Klicke auf das Crown-Icon neben diesem Build, um es zum aktiven Build für den Kanal zu machen. Kanalverwaltungsoptionen
  3. Bestätige, dass du zu diesem Build zurückrollen möchtest.

Nach dem Zurücksetzen erhalten Geräte, die auf dem aktualisierten Kanal konfiguriert sind, die vorherige Version beim nächsten Mal, wenn sie nach einer Aktualisierung suchen, automatisch. Die zurückgesetzte Version wird als neue Aktualisierung behandelt, sodass der übliche Aktualisierungsfluss und die entsprechenden Bedingungen gelten.

Beschleunigen Sie einen kritischen Rollback mit Benachrichtigungen

Abschnitt mit dem Titel “Beschleunigen Sie einen kritischen Rollback mit Benachrichtigungen”

Das Umstellen eines Kanals wirkt sich normalerweise erst beim nächsten Mal aus, wenn ein Gerät nach einer Aktualisierung sucht. Capgo Benachrichtigungen können eine stille Aktualisierungsprüfung an einen unterstützten App anfordern, während diese im Hintergrund läuft. Mit der Aktualisierungsintegration aktiviert, kann die App prüfen, herunterladen und installieren, wie sie es in ihrem konfigurierten Aktualisierungsmodus angegeben hat.

Dies ist kein Beschleunigungsweg, sondern kein Zwangsbefehl für eine Flotte. Die Lieferung bleibt bestmöglich und hängt von der Hintergrundscheduling des Betriebssystems, der Netzwerkverfügbarkeit und dem Gerätestatus ab. Es kann keine Offline- oder Zwangsschließen-App aktualisieren, daher kann es keine feste Zeit versprechen, um alle Geräte zu erreichen.

Um diesen Weg einzurichten, folgen Sie Benachrichtigungen: Aktivieren Sie stille Aktualisierungsprüfungen.

Wenn Sie eine Aktualisierung auf einem Kanal vorübergehend aussetzen möchten, während Sie ein Problem untersuchen, können Sie den Kanal von seiner aktuellen Version trennen.

Um einen Kanal zu entkoppeln:

  1. Navigieren Sie zum Kanal im Capgo-Dashboard.

  2. Klicken Sie auf das „Entkoppeln“-Schaltfläche neben der aktuellen Version.

  3. Bestätigen Sie, dass Sie den Kanal entkoppeln möchten.

Einmal entkoppelt, wird ein Kanal keine neuen Updates verteilen. Geräte, die auf diesen Kanal konfiguriert sind, bleiben auf ihrer aktuellen Version, bis der Kanal wieder mit einer Version verbunden ist.

Dies ist nützlich, wenn Sie ein Problem mit einem Update identifiziert haben, aber noch nicht sicher sind, welche Version Sie zurückrollen möchten. Das Entkoppeln des Kanals gibt Ihnen Zeit, zu untersuchen, ohne weitere Updates zu verteilen.

In schweren Fällen möchten Sie möglicherweise alle Geräte auf einem Kanal wieder auf die Webversion zurücksetzen, die ursprünglich mit Ihrem Apps nativen Binärdatei verpackt wurde. Dies wird als "Built-In-Bundle" bezeichnet.

Um das Built-In-Bundle auf einem Kanal zu zwingen:

  1. Navigieren Sie zum Kanal im Capgo-Dashboard.

  2. Klicken Sie auf die Schaltfläche "Built-In-Bundle".

  3. Bestätigen Sie, dass Sie das integrierte Bundle zwingen möchten.

Wenn Sie das integrierte Bundle zwingen, werden alle auf diesem Kanal konfigurierten Geräte bei ihrem nächsten Update-Check wieder auf die ursprüngliche verpackte Web-Anwendung zurückkehren. Dies geschieht unabhängig davon, auf welchem Build sie sich derzeit befinden.

Dies ist eine aggressivere Rollover-Option als das Zurückkehren zu einem bestimmten vorherigen Build, da alle seit der letzten Veröffentlichung im App-Store freigegebenen Live-Updates verworfen werden.

Um Probleme schnell zu erkennen und den Einfluss von problematischen Updates zu minimieren, ist es wichtig, einen Plan für die Überwachung Ihrer Releases und die Reaktion auf Probleme zu haben.

Einige Strategien umfassen:

Für eine noch auf einen Kohorten beschränkte Rollout verwenden Sie Progressive Rollouts um die Aussetzung oder die Zielgruppe vor einer Änderung der stabilen Bundle für den gesamten Kanal zu pausieren.

  • Unmittelbar nach der Veröffentlichung eines Updates Überwachung von Crashberichten und Benutzerfeedback.
  • Verwendung von Phasenrollouts oder einem gestuften Kanalsystem, um Updates auf einer kleineren Gruppe zu testen, bevor sie weit verbreitet werden.
  • Ein klares Entscheidungsverfahren für die Zeit, wann eine Rückkehr, Entkopplung oder Zwangsausführung der integrierten Bundle erfolgen soll, und wer dazu die Autorität hat.
  • Benutzern über die Probleme und die Lösung zu informieren, wenn dies angemessen ist.

Indem Sie sorgfältige Überwachung kombinieren mit der Fähigkeit, problematische Updates schnell zu verwalten, können Sie eine ständig verbesserte App-Erfahrung liefern, während Sie Störungen für Ihre Benutzer minimieren.

Wenn Sie Rollbacks verwenden Rollbacks um eine Rückkehr und Versionskontrolle zu planen, verbinden Sie es mit Versionzielmarkierung zur Implementierungsdetails in Version Zielsetzung, Updateverhalten zur Implementierungsdetails in Updateverhalten, Bundle zur Implementierungsdetails in Bundle, Capgo Live Updates for the product workflow in Capgo Live Updates, and Rollback Strategies for Capacitor Live Updates zur Produktworkflow in Capacitor Live Updates und