Vai al contenuto

Rollback

Mentre le Live Updates di Capgo ti permettono di distribuire rapidamente miglioramenti e fix ai tuoi utenti, potrebbero esserci situazioni in cui devi tornare a una versione precedente della tua app. Magari un nuovo aggiornamento ha introdotto un problema critico imprevisto, o forse vuoi annullare una modifica specifica mentre lavori a una soluzione.

Capgo offre diversi modi per gestire i build di un canale e controllare la versione della tua app che ricevono gli utenti, con opzioni di rollback manuale e meccanismi di sicurezza automatici.

Capgo include un meccanismo di sicurezza integrato per proteggere i tuoi utenti dagli aggiornamenti errati. Se si verifica un errore JavaScript prima del notifyAppReady() metodo venga chiamato, il plugin eseguirà automaticamente il rollback all'ultima versione funzionante.

Quando un nuovo aggiornamento viene scaricato e applicato, Capgo si aspetta che la tua app chiami notifyAppReady() entro un intervallo di tempo configurabile per confermare che l'aggiornamento sia stato caricato correttamente. Questo metodo segnala che:

  • Il bundle JavaScript è stato caricato senza errori critici
  • Le funzionalità core della tua app funzionano
  • L'update è sicuro da mantenere

Se notifyAppReady() non viene chiamato a causa di un crash JavaScript o di un errore critico, Capgo farà:

  1. Rileva che l'update non si è inizializzato correttamente
  2. Ripristina automaticamente il bundle funzionante precedente
  3. Segna l'update problematico come fallito per evitare che venga riapplicato
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

Questa protezione automatica assicura che, anche in caso di un aggiornamento errato, i tuoi utenti non si ritrovino con un'app non funzionante.

Puoi configurare quanto tempo Capgo deve attendere notifyAppReady() per essere chiamato, impostando il appReadyTimeout nella tua configurazione di Capacitor:

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

Il appReadyTimeout Il valore è espresso in millisecondi. Il timeout predefinito è in genere di 10 secondi, ma puoi regolarlo in base ai requisiti di inizializzazione della tua app. Se l'app impiega più tempo a caricarsi per via di processi di inizializzazione complessi, potresti voler aumentare questo valore.

Ogni volta che carichi una nuova build e la assegni a un canale, Capgo ne conserva la cronologia. Se devi fare il rollback di un aggiornamento specifico, puoi selezionare una di queste build precedenti e ridistribuirla sul canale.

Interfaccia di rollback

Il modo principale per effettuare il rollback è tramite l'interfaccia di rollback, che si trova nella quarta scheda (History) quando visualizzi un canale nella Dashboard di Capgo. Questa scheda offre una panoramica completa di tutte le build disponibili per il canale, permettendoti di selezionare e ripristinare facilmente qualsiasi versione precedente.

To roll back using the History tab:

  1. Accedi alla Dashboard di Capgo.

  2. Vai alla sezione “Channels”.

  3. Clicca sul nome del canale su cui vuoi eseguire il rollback.

  4. Vai alla quarta scheda (History) nella vista del canale.

  5. Trova nella cronologia delle build la build a cui vuoi tornare.

  6. Seleziona quella build per renderla la build attiva del canale.

  7. Conferma di voler effettuare il rollback su questa build.

Come seconda opzione, puoi anche fare rollback direttamente dalla prima tab cliccando sull'icona della corona accanto a qualsiasi build nella cronologia delle build del canale:

  1. Nella prima tab della vista del canale, individua la build a cui vuoi tornare.
  2. Clicca sull'icona della corona accanto a quella build per impostarla come build attiva del canale. Opzioni di gestione del canale
  3. Conferma di voler effettuare il rollback su questa build.

Dopo il rollback, i dispositivi configurati per essere in ascolto sul canale aggiornato riceveranno la build precedente al prossimo controllo degli aggiornamenti. La build di rollback verrà trattata come un nuovo aggiornamento, quindi valgono il flusso e le condizioni di aggiornamento usuali.

Accelerare un rollback critico con le notifiche

Sezione: “Accelera un rollback critico con le notifiche”

Il reindirizzamento di un canale ha effetto normalmente al prossimo controllo aggiornamenti del dispositivo. Le notificazioni Capgo possono inviare una notifica di controllo silenzioso a un'app supportata mentre è in background. Con l'integrazione dell'updater abilitata, l'app può controllare, scaricare e installare il rollback in base alla modalità di aggiornamento configurata.

This is an acceleration path, not a forced fleet command. Delivery remains best-effort and depends on operating-system background scheduling, network availability, and device state. It cannot update an offline or force-quit app, so it cannot promise a fixed time to reach every device.

Per configurare questo percorso, segui Notifiche: Abilita i Silent Update Checks.

Se desideri sospendere temporaneamente gli aggiornamenti su un canale mentre indaghi su un problema, puoi scollegare il canale dal suo build attuale.

Per scollegare un canale:

  1. Vai al canale nel Capgo Dashboard.

  2. Clicca sul pulsante “Unlink” accanto al build attuale.

  3. Conferma di voler scollegare il canale.

Una volta scollegato, il canale non distribuirà nuovi aggiornamenti. I dispositivi configurati su quel canale rimarranno sul build attuale finché il canale non verrà nuovamente collegato a un build.

Questa opzione è utile se hai riscontrato un problema con un aggiornamento ma non hai ancora deciso a quale build tornare. Scollegare il canale ti permette di investigare senza distribuire ulteriori aggiornamenti.

In situazioni più critiche, potresti voler riportare tutti i dispositivi di un canale alla web build originariamente inclusa nel binario nativo della tua app. Questa versione è chiamata “built-in bundle”.

Per forzare il built-in bundle su un canale:

  1. Vai al canale nella Capgo Dashboard.

  2. Clicca sul pulsante “Built-in Bundle”.

  3. Conferma di voler forzare il built-in bundle.

Forzando il built-in bundle, tutti i dispositivi configurati su quel canale torneranno alla web build originale al prossimo controllo degli aggiornamenti. Questo accade indipendentemente dalla build attualmente in uso.

Questa è un'opzione di rollback più drastica rispetto al ritorno a una build specifica, poiché scarta tutti i Live Update rilasciati dall'ultima pubblicazione dell'app sugli store.

Per individuare rapidamente i problemi e ridurre l'impatto degli update problematici, è fondamentale avere un piano per monitorare i rilasci e rispondere ai problemi.

Alcune strategie includono:

Per un rollout ancora limitato a una coorte, usa Rollout progressivi per sospendere l'esposizione o svuotare il target prima di cambiare il bundle stabile per l'intero canale.

  • Monitora crash report e feedback degli utenti subito dopo il rilascio di un update
  • Utilizzare rollout graduali o un sistema di canali a stadi per testare gli update su un gruppo ristretto prima del rilascio globale
  • Definire un processo decisionale chiaro su quando effettuare il rollback, l'unlink o forzare il bundle predefinito, e chi ha l'autorità per farlo
  • Comunicare agli utenti il problema e la relativa risoluzione, se opportuno

Combinando un monitoraggio attento con la possibilità di gestire rapidamente gli update problematici, puoi offrire un'esperienza app in continuo miglioramento riducendo al minimo i disservizi per gli utenti.

Se stai usando Rollback per pianificare rollback e version control, connettilo a Targeting delle versioni per i dettagli di implementazione nel Version Targeting, Comportamento degli aggiornamenti per i dettagli di implementazione nell'Update Behavior, bundle per i dettagli di implementazione nel bundle, Live Updates di Capgo per il workflow del prodotto in Capgo Live Updates, e Strategie di rollback per Capacitor Live Updates per il contesto pratico in Strategie di rollback per Capacitor Live Updates.