Zum Inhalt springen

Rollbacks

Während Capgo’s Live-Updates Ihnen ermöglichen, Verbesserungen und Fixes schnell an Ihre Benutzer zu liefern, gibt es Situationen, in denen Sie auf eine vorherige Version Ihres Apps zurückkehren müssen. Vielleicht wurde eine neue Aktualisierung ein unerwartetes kritisches Problem mit sich gebracht, 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 sowohl manueller Rollover-Optionen als auch automatischer Sicherheitsmechanismen.

Capgo enthält eine integrierte Sicherheitsmechanismus, um Ihre Benutzer vor beschädigten Updates zu schützen. Wenn ein JavaScript-Fehler vor der notifyAppReady() wird beim Aufruf der Methode automatisch auf die vorherige funktionierende Version zurückgerollt.

Wenn ein neuer Update heruntergeladen und angewendet wird, erwartet Capgo von Ihrer App, dass sie innerhalb eines konfigurierbaren Zeitraums bestätigt, dass das Update erfolgreich geladen wurde. Diese Methode signalisiert, dass: notifyAppReady() Die JavaScript-Bundle wurden ohne kritische Fehler geladen.

  • Die Kernfunktionen Ihrer App funktionieren.
  • Das Update ist sicher zu behalten.
  • Wenn

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

  1. Automatisch auf die vorherige funktionierende Bundle zurückkehren.
  2. Wenn die Methode nicht aufgerufen wird, weil JavaScript abstürzt oder ein kritischer Fehler auftritt, wird __CAPGO_KEEP_0__ automatisch auf die vorherige funktionierende Version zurückrollen.
  3. Marken Sie das fehlerhafte Update als fehlgeschlagen, um es zu verhindern, dass es erneut angewendet wird
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

Diese automatische Schutzfunktion hilft sicherzustellen, dass selbst wenn Sie versehentlich ein gebrochenes Update pushen, Ihre Benutzer nicht mit einer nicht-funktionalen App gestellt werden.

Sie können festlegen, wie lange Capgo wartet, notifyAppReady() um von appReadyTimeout in Ihrer Capacitor-Konfiguration:

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

Die appReadyTimeout Wert ist in Millisekunden angegeben. Der Standardzeitraum beträgt typischerweise 10 Sekunden, aber Sie können diesen basierend auf den Anforderungen Ihrer App anpassen. Wenn Ihre App 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 eine 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 wieder in den Kanal zu deployen.

Zurückrollen UI Interface

Der Hauptweg, um zurückzurollen, ist über die Zurückroll-Interface, das sich im 4. Tab (Historie) befindet, wenn Sie einen Kanal im Capgo Dashboard ansehen. Dieser Tab 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.

Zurückrollen mithilfe der Historie-Tabelle:

  1. Anmelden im Capgo Dashboard.

  2. Navigieren Sie zur ‘Kanäle’-Sektion.

  3. Klicken Sie auf den Namen des Kanals, den Sie zurückrollen möchten.

  4. Gehe zur 4. Registerkarte (Historie) im Kanal-View.

  5. Finde das Build, das Sie zurücksetzen möchten, in der Build-Historie.

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

  7. Bestätigen Sie, dass Sie zu diesem Build zurückrollen möchten.

Als zweite Möglichkeit können Sie auch direkt von der ersten Registerkarte aus zurückrollen, indem Sie das Crown-Icon neben jedem Build in der Build-Historie des Kanals klicken:

  1. In der ersten Registerkarte des Kanal-Views finden Sie das Build, das Sie zurücksetzen möchten.
  2. Klicken Sie auf das Crown-Icon neben diesem Build, um es zum aktiven Build für den Kanal zu machen. Optionen für die Kanalverwaltung
  3. Bestätigen Sie, dass Sie zu diesem Build zurückrollen möchten.

Nachdem Sie zurückgerollt haben, erhalten Geräte, die auf dem aktualisierten Kanal lauschen, die vorherige Version beim nächsten Update-Check. Die zurückgerollte Version wird als neues Update behandelt, sodass der übliche Update-Flow und die entsprechenden Bedingungen gelten.

Wenn Sie Updates 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 trennen:

  1. Navigieren Sie zum Kanal im Capgo-Dashboard.

  2. Klicken Sie auf den ‘Trennen’-Button neben der aktuellen Version.

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

Nachdem ein Kanal getrennt wurde, verteilt er keine neuen Updates mehr. Geräte, die auf diesem Kanal lauschen, bleiben auf ihrer aktuellen Version, bis der Kanal wieder mit einer Version verbunden wird.

Dies ist nützlich, wenn Sie ein Problem mit einer Aktualisierung identifiziert haben, aber noch nicht sicher sind, welches Build Sie zurückrollen möchten. Das Entkoppeln des Kanals gibt Ihnen Zeit, zu untersuchen, ohne weitere Aktualisierungen zu verschieben.

In schwereren Situationen möchten Sie möglicherweise alle Geräte auf einem Kanal zurück auf die Web-Ausgabe zurücksetzen, die ursprünglich mit Ihrem Apps nativen Binärdatei verpackt wurde. Dies wird als “integrierter Bundle” bezeichnet.

Um auf einem Kanal den integrierten Bundle 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 den integrierten Bundle zwingen möchten.

Wenn Sie den integrierten Bundle zwingen, werden alle auf dem Kanal konfigurierten Geräte auf die ursprünglich verpackte Web-Ausgabe zurückkehren, sobald sie auf die nächste Aktualisierungsprüfung treffen. Dies geschieht unabhängig davon, auf welchem Build sie sich derzeit befinden.

Dies ist eine aggressivere Rückkehrmöglichkeit als das Zurückrollen auf ein bestimmtes vorheriges Build, da alle live veröffentlichten Aktualisierungen seit der letzten Veröffentlichung der App in den App-Stores verworfen werden.

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

Einige Strategien umfassen:

  • Die Überwachung von Crashberichten und Benutzerfeedback sofort nach der Veröffentlichung einer Aktualisierung
  • Die Verwendung von Phasenrollouts oder einem gestaffelten Kanal-System, um Aktualisierungen auf einer kleineren Gruppe zu testen, bevor sie breit verbreitet werden
  • Ein klares Entscheidungsprozess für die Zeit, wenn man zurückrollen, entkoppeln oder die integrierte Bundle zwingen soll, und wer die Autorität dazu hat
  • Die Kommunikation mit Benutzern über das Problem und die Lösung, wenn dies angebracht ist

Indem Sie sorgfältige Überwachung kombinieren mit der Fähigkeit, schnell auf Probleme zu reagieren, können Sie eine kontinuierlich verbesserte App-Erfahrung liefern, während Sie die Störungen für Ihre Benutzer minimieren.

Wenn Sie Rollbacks um Rollbacks und Versionskontrolle zu planen, verbinden Sie es mit Version Targeting für die Implementierungsdetails in Version Targeting, Update Behavior für die Implementierungsdetails in Update Behavior, bundle für die Implementierungsdetails in bundle, Capgo Live Updates für den Produktworkflow in Capgo Live Updates, und Rollback-Strategien für Capacitor Live Updates für den praktischen Kontext in Rollback-Strategien für Capacitor Live-Updates.