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 introdotto un problema critico imprevisto, o forse desideri 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, comprese sia le opzioni di rollback manuale che i 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 è caricato correttamente
  2. Ritornerà automaticamente al bundle precedente funzionante
  3. Segnalerà l'aggiornamento problematico come fallito per prevenirne la ripetizione
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 attenda per notifyAppReady() essere chiamato impostando il appReadyTimeout in configurazione di Capacitor:

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

La appReadyTimeout il valore è specificato in millisecondi. Il timeout predefinito è tipicamente di 10 secondi, ma puoi regolarlo in base alle esigenze di inizializzazione dell'app. Se l'app richiede più tempo per caricare 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 rollback

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 rollback utilizzando la scheda Storia:

  1. Accedi al Capgo Dashboard.

  2. Naviga alla sezione “Canali”.

  3. Clicca sul nome del canale che desideri annullare.

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

  5. Trovare la versione costruita che desideri annullare in storia delle versioni.

  6. Seleziona quella versione per renderla la versione attiva per il canale.

  7. Conferma di voler tornare a questa versione.

Come seconda opzione, puoi anche tornare indietro direttamente dalla prima scheda cliccando sull'icona della corona accanto a qualsiasi versione nella storia delle versioni del canale:

  1. Nella prima scheda della vista del canale, trova la versione che desideri annullare.
  2. Clicca sull'icona della corona accanto a quella versione per renderla la versione attiva per il canale. Opzioni di gestione del canale
  3. Conferma di voler tornare a questa versione.

Dopo la rimozione, i dispositivi configurati per ascoltare il canale aggiornato riceveranno la versione precedente del build 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 degli aggiornamenti silenziosa a un'app supportata mentre è in background. Con l'integrazione dell'aggiornatore abilitata, l'app può controllare, scaricare e installare il rollback secondo il suo configurato modo di aggiornamento.

Si tratta di un percorso di accelerazione, non di un comando di flotta forzato. La consegna rimane a best-effort 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 degli Aggiornamenti Silenziosi.

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

To disconnettere un canale:

  1. Naviga nel canale nel 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. Gli 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 vuoi tornare indietro. Disconnettere il canale ti dà tempo per investigare senza spingere ulteriori aggiornamenti.

In situazioni più gravi, potresti voler tornare indietro 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 nel canale nel 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 degli aggiornamenti. 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, utilizza 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 dei utenti immediatamente dopo la rilascio di un aggiornamento.
  • Utilizzare rilasci fasi o un sistema di canale a fasi per testare gli aggiornamenti su un gruppo più piccolo prima di una larga diffusione.
  • Avendo un processo di decisione chiaro per quando riportare indietro, disconnettere o forzare il bundle integrato, e chi ha l'autorità di farlo.
  • Comunicare ai utenti sull'argomento e sulla risoluzione, se appropriato.

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

Se stai utilizzando Rollbacks per pianificare il riportare indietro e il controllo delle versioni, collegarlo 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 Strategie di rollback per Capacitor Aggiornamenti in tempo reale