Zum Inhalt springen

Rollbacks

Während Capgo Live Updates es dir ermöglichen, Verbesserungen und Fixes schnell an deine Nutzer auszuliefern, gibt es Situationen, in denen du zu einer vorherigen App-Version zurückrollen musst. Vielleicht hat ein neues Update einen unerwarteten kritischen Fehler verursacht, oder du möchtest eine spezifische Änderung rückgängig machen, während du an einem Fix arbeitest.

Capgo bietet verschiedene Möglichkeiten, die Builds eines Channels zu verwalten und die Version deiner App zu steuern, die Nutzer erhalten – inklusive manueller Rollback-Optionen und automatischer Sicherheitsmechanismen.

Capgo enthält einen integrierten Sicherheitsmechanismus, um deine Nutzer vor fehlerhaften Updates zu schützen. Tritt ein JavaScript-Fehler auf, bevor die notifyAppReady() Methode aufgerufen wird, rollt das Plugin automatisch zur letzten funktionierenden Version zurück.

Sobald ein neues Update heruntergeladen und angewendet wurde, erwartet Capgo, dass deine App notifyAppReady() innerhalb eines konfigurierbaren Zeitfensters aufruft, um zu bestätigen, dass das Update erfolgreich geladen wurde. Diese Methode signalisiert, dass:

  • Das JavaScript-Bundle ohne kritische Fehler geladen wurde
  • Die Kernfunktionalität deiner App läuft
  • Das Update ist sicher

Wenn notifyAppReady() aufgrund eines JavaScript-Crashes oder kritischen Fehlers nicht aufgerufen wird, wird Capgo:

  1. Erkennen, dass das Update nicht korrekt initialisiert wurde
  2. Automatisch zum letzten funktionierenden Bundle zurückkehren
  3. Das fehlerhafte Update als fehlgeschlagen markieren, um eine erneute Anwendung zu verhindern
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

Dieser automatische Schutz stellt sicher, dass Ihre Nutzer nicht mit einer defekten App feststecken, selbst wenn Sie versehentlich ein fehlerhaftes Update pushen.

Sie können festlegen, wie lange Capgo wartet, notifyAppReady() indem Sie den folgenden Wert setzen: appReadyTimeout in Ihrer Capacitor Konfiguration:

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

Der appReadyTimeout Der Wert wird in Millisekunden angegeben. Der Standard-Timeout beträgt meist 10 Sekunden, kann aber je nach Initialisierung Ihrer App angepasst werden. Falls Ihre App aufgrund komplexer Prozesse länger zum Laden braucht, sollten Sie diesen Wert erhöhen.

Jedes Mal, wenn Sie einen neuen Build hochladen und einem Channel zuweisen, speichert Capgo eine Historie dieser Builds. Wenn Sie ein bestimmtes Update rückgängig machen müssen, können Sie einen dieser vorherigen Builds auswählen, um ihn erneut im Channel bereitzustellen.

Rollback-UI-Interface

Der primäre Weg für einen Rollback führt über die Rollback-Oberfläche. Diese findest du im 4. Tab (History), wenn du einen Channel im Capgo Dashboard betrachtest. Dieser Tab bietet eine vollständige Übersicht aller verfügbaren Builds für den Channel, sodass du einfach eine vorherige Version auswählen und wiederherstellen kannst.

To roll back using the History tab:

  1. Logge dich im Capgo Dashboard ein.

  2. Navigiere zum Bereich „Channels“.

  3. Klicke auf den Namen des Channels, den du zurücksetzen möchtest.

  4. Gehe in der Channel-Ansicht zum 4. Tab (History).

  5. Suche in der Build-Historie den Build, zu dem du zurückkehren möchtest.

  6. Wähle diesen Build aus, um ihn zum aktiven Build für den Channel zu machen.

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

Alternative Methode: Über das Kronen-Icon

Abschnitt: „Alternative Methode: Über das Kronen-Icon“

Als zweite Möglichkeit kannst du auch direkt im ersten Tab einen Rollback durchführen, indem du auf das Kronen-Icon neben einem Build in der Build-Historie des Channels klickst:

  1. Suche im ersten Tab der Channel-Ansicht den Build, zu dem du zurückkehren möchtest.
  2. Klicke auf das Kronen-Icon neben diesem Build, um ihn zum aktiven Build für den Channel zu machen. Optionen zur Channel-Verwaltung
  3. Bestätige, dass du zu diesem Build zurückrollen möchtest.

Nach dem Rollback erhalten Geräte, die auf den aktualisierten Channel hören, den vorherigen Build beim nächsten Update-Check. Der zurückgerollte Build wird wie ein neues Update behandelt, sodass der übliche Update-Flow und die Standardbedingungen gelten.

Kritische Rollbacks durch Benachrichtigungen beschleunigen

Abschnitt: „Kritische Rollbacks durch Benachrichtigungen beschleunigen“

Das Umleiten eines Channels wird normalerweise beim nächsten Update-Check des Geräts wirksam. Capgo Notifications können eine Silent Update-Check-Benachrichtigung an eine unterstützte App senden, während diese im Hintergrund läuft. Ist die Updater-Integration aktiviert, kann die App den Rollback gemäß ihrem konfigurierten Update-Modus prüfen, herunterladen und installieren.

Dies ist ein Beschleunigungspfad, kein erzwungener Fleet-Befehl. Die Zustellung erfolgt nach dem Best-Effort-Prinzip und hängt vom Hintergrund-Scheduling des Betriebssystems, der Netzwerkverfügbarkeit und dem Gerätestatus ab. Apps, die offline sind oder manuell beendet wurden, können nicht aktualisiert werden; eine garantierte Zeit für alle Geräte kann daher nicht zugesichert werden.

Um diesen Pfad einzurichten, folge: Notifications: Silent Update Checks aktivieren.

Wenn du Updates auf einem Channel vorübergehend stoppen möchtest, um ein Problem zu untersuchen, kannst du den Channel von seinem aktuellen Build entkoppeln.

So entkoppelst du einen Channel:

  1. Navigiere zum Channel im Capgo Dashboard.

  2. Klicke auf die Schaltfläche „Unlink“ neben dem aktuellen Build.

  3. Bestätige, dass du den Channel entkoppeln möchtest.

Sobald ein Channel entkoppelt ist, werden keine neuen Updates mehr verteilt. Geräte, die für diesen Channel konfiguriert sind, bleiben auf ihrem aktuellen Build, bis der Channel wieder mit einem Build verknüpft wird.

Das ist hilfreich, wenn du ein Problem mit einem Update erkannt hast, aber noch nicht sicher bist, auf welchen Build du zurückrollen möchtest. Durch das Entkoppeln des Channels gewinnst du Zeit für die Analyse, ohne weitere Updates zu pushen.

In kritischen Situationen möchtest du eventuell alle Geräte eines Channels auf den Web-Build zurücksetzen, der ursprünglich mit der nativen Binary deiner App ausgeliefert wurde. Dies wird als „built-in bundle“ bezeichnet.

Um das Built-In Bundle auf einem Channel zu erzwingen:

  1. Navigiere zum entsprechenden Channel im Capgo Dashboard.

  2. Klicke auf den Button „Built-in Bundle“.

  3. Bestätige, dass du das Built-In Bundle erzwingen möchtest.

Wenn du das Built-In Bundle erzwingst, kehren alle auf diesen Channel konfigurierten Geräte beim nächsten Update-Check zum ursprünglich verpackten Web-Build zurück. Dies geschieht unabhängig davon, auf welchem Build sie sich aktuell befinden.

Dies ist eine aggressivere Rollback-Option als das Zurücksetzen auf einen spezifischen vorherigen Build, da alle Live Updates verworfen werden, die seit der letzten Veröffentlichung der App in den App Stores veröffentlicht wurden.

Um Probleme schnell zu erkennen und die Auswirkungen fehlerhafter Updates zu minimieren, ist ein Plan für das Monitoring deiner Releases und die Reaktion auf Probleme entscheidend.

Einige Strategien sind:

Für einen Rollout, der noch auf eine Cohort beschränkt ist, nutze Progressive Rollouts um die Ausspielung zu pausieren oder das Target zu leeren, bevor du das stabile Bundle für den gesamten Channel änderst.

  • Überwachung von Crash-Reports und User-Feedback unmittelbar nach dem Release eines Updates
  • Nutzung von Phased Rollouts oder einem Staged-Channel-System, um Updates vor dem breiten Release an einer kleineren Gruppe zu testen
  • Ein klarer Entscheidungsprozess, wann ein Rollback oder Unlink erfolgt oder das integrierte Bundle erzwungen wird und wer dafür die Befugnis hat
  • Kommunikation des Problems und der Lösung an die Nutzer, sofern angemessen

Durch die Kombination aus präzisem Monitoring und der Möglichkeit, problematische Updates schnell zu verwalten, bieten Sie eine ständig verbesserte App-Experience bei minimalen Unterbrechungen für Ihre Nutzer.

Wenn du es nutzt Rollbacks um Rollbacks und die Versionskontrolle zu planen, verbinden Sie es mit Version-Targeting für Details zur Implementierung in Version Targeting, Update-Verhalten für die Implementierungsdetails im Update-Verhalten, Bundle für Details zur Implementierung im bundle, Capgo Live Updates für den Produkt-Workflow 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.