Saltare al contenuto

Rollbacks

Mentre le Capgo live updates ti consentono di fornire velocemente miglioramenti e correzioni ai tuoi utenti, potrebbero esserci situazioni in cui hai bisogno di tornare a una versione precedente dell'applicazione. Forse un aggiornamento nuovo ha introdotto un problema critico imprevisto, o forse vuoi ripristinare un cambiamento specifico mentre lavori su una soluzione.

Capgo fornisce diverse opzioni per gestire le costruzioni di un canale e controllare la versione dell'applicazione che ricevono gli utenti, compresi sia opzioni di rollback manuale che meccanismi di sicurezza automatici.

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__ include un meccanismo di sicurezza integrato per proteggere gli utenti dai aggiornamenti rotti. Se si verifica un errore JavaScript prima che il metodo sia chiamato, il plugin si attiverà automaticamente per tornare alla versione precedente funzionante.

When a new update is downloaded and applied, Capgo expects your app to call notifyAppReady() entro un tempo configurabile per confermare che l'aggiornamento è stato caricato con successo. Questo metodo segnala che:

  • The JavaScript bundle loaded without critical errors
  • La funzionalità di base dell'app è funzionante
  • L'aggiornamento è sicuro da mantenere

If notifyAppReady() is not called due to a JavaScript crash or critical error, Capgo will:

  1. Rileverà che l'aggiornamento non si è inizializzato correttamente
  2. Reverterà automaticamente al bundle precedente funzionante
  3. Segnalerà l'aggiornamento problematico come fallito per prevenirne l'applicazione nuovamente
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

Questa protezione automatica aiuta a garantire che anche se accidentalmente pubblichi un aggiornamento rotto, gli utenti non rimarranno bloccati con un'applicazione non funzionante.

Puoi configurare quanto tempo Capgo attende per notifyAppReady() essere chiamato impostando il appReadyTimeout in configurazione Capacitor:

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

La appReadyTimeout il valore è specificato in millisecondi. Il timeout predefinito è tipicamente di 10 secondi, ma puoi regolare questo valore in base alle esigenze di inizializzazione dell'app. Se l'app richiede più tempo per caricarsi a causa di processi di inizializzazione complessi, potresti voler aumentare questo valore.

Every time you upload a new build and assign it to a channel, Capgo keeps a history of those builds. If you need to revert a specific update, you can select one of these previous builds to redeploy to the channel.

Interfaccia di ritorno a una versione precedente

The primary way to roll back is through the rollback interface, which is located in the 4th tab (History) when viewing a channel in the Capgo Dashboard. This tab provides a comprehensive view of all available builds for the channel, allowing you to easily select and revert to any previous version.

Per eseguire il ritorno a una versione precedente utilizzando la scheda Storia:

  1. Accedi al Capgo Dashboard.

  2. Naviga alla sezione “Canali”.

  3. Clicca il nome del canale che desideri ritornare a.

  4. Vai alla 4^ scheda (Storia) nella vista del canale.

  5. Trovare il build che desideri ripristinare nella cronologia dei build.

  6. Seleziona quel build per renderlo il build attivo per il canale.

  7. Conferma di voler ripristinare a questo build.

Come seconda via, puoi anche ripristinare direttamente dalla prima scheda cliccando sull'icona della corona accanto a qualsiasi build nella cronologia dei build del canale:

  1. In prima scheda della vista del canale, trova il build che desideri ripristinare.
  2. Clicca sull'icona della corona accanto a quel build per renderlo il build attivo per il canale. Opzioni di gestione del canale
  3. Conferma di voler ripristinare a questo build.

Dopo la rimozione, i dispositivi configurati per ascoltare il canale aggiornato riceveranno la versione precedente la prossima volta che controllano per aggiornamenti. La versione rimossa sarà trattata come un nuovo aggiornamento, quindi si applicano le condizioni e il flusso di aggiornamento normali.

Ripuntare un canale normalmente ha effetto la prossima volta che un dispositivo controlla per aggiornamenti. Capgo Le notifiche possono inviare una notifica di controllo aggiornamento silenzioso a un'app supportata mentre è in background. Con l'integrazione dell'aggiornatore abilitata, l'app può controllare, scaricare e installare la rimozione in base al suo configurato modo di aggiornamento.

Questo è un percorso di accelerazione, non un comando di flotta forzato. La consegna rimane a miglior prestazione e dipende dalla programmazione di background del sistema operativo, dalla disponibilità della rete e dallo stato del dispositivo. Non può aggiornare un'app offline o forzata, quindi non può promettere un tempo fissato per raggiungere ogni dispositivo.

Per configurare questo percorso, segui Notifiche: Abilita Controlli Aggiornamento Silenziosi.

Se desideri temporaneamente fermare gli aggiornamenti su un canale mentre investighi un problema, puoi disconnettere il canale dalla sua versione corrente.

Per disconnettere un canale:

  1. Naviga al canale nella Capgo Dashboard.

  2. Clicca sul pulsante “Disconnetti” accanto alla versione corrente.

  3. Conferma di voler disconnettere il canale.

Una volta disconnesso un canale, non distribuirà più aggiornamenti. I dispositivi configurati su quel canale rimarranno sulla versione corrente fino a quando il canale non sarà collegato a una versione nuovamente.

Questo è utile se hai identificato un problema con un aggiornamento ma non sei ancora sicuro di quale versione desideri tornare. Disconnettere il canale ti dà tempo per investigare senza spingere ulteriori aggiornamenti.

In situazioni più gravi, potresti voler riportare tutti i dispositivi su un canale alla versione web che era originariamente confezionata con il tuo binario nativo. Questo è noto come il “bundle integrato”.

Per forzare il bundle integrato su un canale:

  1. Naviga al canale nella Capgo Dashboard.

  2. Clicca sul pulsante “Bundle Integrato”.

  3. Conferma di voler forzare il bundle integrato.

Quando si forza il bundle integrato, tutti i dispositivi configurati su quel canale ritornano alla versione web originale del pacchetto al loro prossimo controllo di aggiornamento. Ciò avviene indipendentemente da quale versione stanno utilizzando.

Questa è un'opzione di rollback più aggressiva rispetto a tornare a una versione precedente specifica, poiché elimina tutti gli aggiornamenti live rilasciati dal momento in cui l'app è stata pubblicata negli store di app.

Per catturare le problematiche velocemente e minimizzare l'impatto degli aggiornamenti problematici, è importante avere un piano per monitorare le proprie rilasci e rispondere ai problemi.

Alcune strategie includono:

Per un rollout che è ancora limitato a un cohort, utilizzare Rollout progressivo per interrompere l'esposizione o cancellare il bersaglio prima di modificare il bundle stabile per tutto il canale.

  • Monitorare i rapporti di crash e le informazioni degli utenti immediatamente dopo la rilascio di un aggiornamento.
  • Utilizzare rilasci fasiati o un sistema di canali stadiati per testare gli aggiornamenti su un gruppo più piccolo prima di una diffusione ampia.
  • Avere un processo di decisione chiaro per quando riportare indietro, disconnettere o forzare il bundle integrato, e chi ha l'autorità di farlo.
  • Comunicare agli utenti sull'issue e sulla risoluzione, se appropriato.

Combiniando il monitoraggio attento con la capacità di gestire rapidamente gli aggiornamenti problematici, puoi fornire un'esperienza di app continuamente migliorata, riducendo le interruzioni per i tuoi utenti.

Se stai utilizzando Rollbacks per pianificare il riportare indietro e il controllo delle versioni, collegalo con Targetizzazione della versione per i dettagli di implementazione in Version Targeting, Comportamento dell'aggiornamento per i dettagli di implementazione in Comportamento dell'aggiornamento, pacchetto per i dettagli di implementazione in pacchetto, Capgo Aggiornamenti in Tempo Reale for the product workflow in Capgo Live Updates, and per il flusso di lavoro del prodotto in Capacitor Aggiornamenti in Tempo Reale, e Estrategie di Annullamento per Capacitor Aggiornamenti in Tempo Reale