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 Ihres Apps zurückkehren müssen. Vielleicht wurde eine neue Aktualisierung ein unerwartetes kritisches Problem hervorgerufen, 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 Rückschaltmöglichkeiten als auch 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 eingebaute 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 Zeitraums bestätigt, dass das Update erfolgreich geladen wurde. Diese Methode signalisiert, dass: notifyAppReady() Der 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ückkehrt
  2. Das problematische Update als fehlgeschlagen markiert, um es zu verhindern, dass es wieder angewendet wird
  3. Automatische Rollbacks
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__ auf den Aufruf wartet, indem Sie die

in Ihrer __CAPGO_KEEP_0__-Konfiguration einstellen:

You can configure how long Capgo waits for notifyAppReady() Stellen Sie sicher, dass Sie __CAPGO_KEEP_0__ nach dem erfolgreichen Laden Ihrer Kernkomponenten in der Initialisierung Ihrer App aufrufen. appReadyTimeout in your Capacitor configuration:

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

Die appReadyTimeout Wert ist in Millisekunden angegeben. Der Standard-Zeitlimit beträgt typischerweise 10 Sekunden, aber Sie können ihn an Ihre Anwendungsinitialisierungsanforderungen anpassen. Wenn Ihre Anwendung aufgrund komplexer Initialisierungsprozesse länger zum Laden benötigt, sollten Sie 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ängigmachung-UI

Die primäre Möglichkeit, rückgängig zu machen, ist die Rückgängigmachungsoberfläche, die 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.

Um rückgängig zu machen, indem Sie die Historie-Taste verwenden:

  1. Anmelden im Capgo Dashboard.

  2. Zum ‘Kanäle’-Abschnitt navigieren.

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

  4. Gehe zur 4. Registerkarte (Historie) im Kanal-Übersichtsbereich.

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

  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ücksetzen möchtest.

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

  1. Finde in der ersten Registerkarte des Kanal-Übersichtsbereichs das Build, das du zurücksetzen möchtest.
  2. Klicke das Crown-Icon neben diesem Build an, um es zum aktiven Build für den Kanal zu machen. Optionen für die Kanalverwaltung
  3. Bestätige, dass du zu diesem Build zurücksetzen möchtest.

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

Beschleunigen Sie ein kritischer Rollback mit Benachrichtigungen

Abschnitt mit dem Titel “Beschleunigen Sie ein kritischer 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 Aktualisierungsnachricht an ein unterstütztes App senden, während es sich im Hintergrund befindet. Mit der AktualisierungsinTEGRATION aktiviert, kann die App prüfen, herunterladen und die Rollback-Aktualisierung entsprechend ihrer konfigurierten Aktualisierungsmodus installieren.

Dies ist ein Beschleunigungsweg und kein gezwungener Flottenbefehl. Die Lieferung bleibt bestmöglich und hängt von der Betriebssystem-Hintergrund-Schaltung, der Netzwerkverfügbarkeit und dem Gerätezustand ab. Es kann keine Offline- oder gezwungene App aktualisieren, daher kann es keine feste Zeit versprechen, um jedes Gerät zu erreichen.

Um diesen Weg einzurichten, folgen Sie bitte Benachrichtigungen: Aktivieren Sie stille Aktualisierungsnachrichten.

Wenn Sie eine vorübergehende Einstellung der Aktualisierungen auf einem Kanal während der Untersuchung eines Problems wünschen, 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 diesem 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 einer Aktualisierung identifiziert haben, aber noch nicht sicher sind, auf welche Version Sie zurückrollen möchten. Durch das Entkoppeln des Kanals erhalten Sie Zeit, um zu untersuchen, ohne weitere Updates zu verteilen.

Zurücksetzen des Built-In-Bundles

Zurücksetzen des Built-In-Bundles

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 native 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 „Built-in-Bundle“-Schaltfläche.

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

Wenn Sie das integrierte Bundle erzwingen, 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 Löschung des Ziels vor der Ä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 gestaffelten Kanalsystem, um Updates auf einer kleineren Gruppe zu testen, bevor sie weit verbreitet werden.
  • Ein klares Entscheidungsverfahren für die Zeit, zu der zurückgerollt, entkoppelt oder die integrierte Bundle gezwungen wird, und wer die Autorität dazu hat.
  • Benutzern über die Angelegenheit und die Lösung, wenn angemessen, zu kommunizieren.

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

Wenn Sie Rollbacks verwenden Rollbacks um einen Rückruf und eine Versionskontrolle zu planen, verbinden Sie es mit Versionzielung 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 zum Produktworkflow in Capacitor Live Updates, und Rücksetzstrategien für Capacitor Live Updates