Passer à la navigation

Rollbacks

Même si les mises à jour en direct de Capgo vous permettent de livrer rapidement des améliorations et des correctifs à vos utilisateurs, il peut y avoir des situations où vous devez revenir à une version précédente de votre application. Peut-être que la mise à jour nouvelle a introduit une erreur critique inattendue, ou peut-être que vous souhaitez rétablir une modification spécifique pendant que vous travaillez sur une correction.

Capgo fournit plusieurs moyens de gérer les builds d'un canal et de contrôler la version de votre application que les utilisateurs reçoivent, y compris les options de reversion manuelle et les mécanismes de sécurité automatiques.

Protection automatique de reversion

context

Capgo includes a built-in safety mechanism to protect your users from broken updates. If a JavaScript error occurs before the notifyAppReady() Section intitulée « Protection automatique de reversion »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  »  » 

Lorsqu'une nouvelle mise à jour est téléchargée et appliquée, Capgo attend que votre application appelle notifyAppReady() dans un délai configurable pour confirmer que la mise à jour s'est chargée avec succès. Cette méthode signale que :

  • Le bundle JavaScript s'est chargé sans erreurs critiques
  • La fonctionnalité de base de votre application fonctionne
  • La mise à jour est sûre à conserver

Si notifyAppReady() n'est pas appelée en raison d'un crash JavaScript ou d'une erreur critique, Capgo fera :

  1. Déterminera que la mise à jour a échoué à se lancer correctement
  2. Reviendra automatiquement à la version précédente fonctionnelle du bundle
  3. Marquera la mise à jour problématique comme échouée pour l'empêcher d'être appliquée à nouveau
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

Cette protection automatique aide à s'assurer que même si vous poussez par erreur une mise à jour cassée, vos utilisateurs ne seront pas coincés avec une application non fonctionnelle.

Vous pouvez configurer la durée pendant laquelle Capgo attend que notifyAppReady() soit appelé en définissant la appReadyTimeout valeur dans votre Capacitor configuration :

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

La appReadyTimeout La valeur est spécifiée en millisecondes. Le temps d'attente par défaut est généralement de 10 secondes, mais vous pouvez l'ajuster en fonction des besoins d'initialisation de votre application. Si votre application prend plus de temps pour charger en raison de processus d'initialisation complexes, vous pouvez peut-être augmenter cette valeur.

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.

Interface de 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.

Pour revenir en arrière en utilisant l'onglet Histoire :

  1. Se connecter au Capgo Dashboard.

  2. Naviguer vers la section « Canaux ».

  3. Cliquer sur le nom du canal que vous souhaitez revenir en arrière.

  4. Allez à la 4ème onglet (Histoire) dans la vue du canal.

  5. Trouvez la version de construction que vous souhaitez annuler dans l'historique des versions de construction.

  6. Sélectionnez cette version de construction pour la rendre la version active du canal.

  7. Confirmez que vous souhaitez revenir à cette version de construction.

Méthode alternative : Utilisation de l'icône de couronne

Sous-titre « Méthode alternative : Utilisation de l'icône de couronne »

Comme deuxième méthode, vous pouvez également revenir directement à partir de la première onglet en cliquant sur l'icône de couronne à côté de toute version de construction dans l'historique des versions de construction du canal :

  1. Dans la première onglet de la vue du canal, trouvez la version de construction que vous souhaitez annuler.
  2. Cliquez sur l'icône de couronne à côté de cette version de construction pour la rendre la version active du canal. Options de gestion du canal
  3. Confirmez que vous souhaitez revenir à cette version de construction.

Après la mise à niveau inverse, les appareils configurés pour écouter le canal mis à jour recevront la version précédente la prochaine fois qu'ils vérifieront une mise à jour. La version inversée sera traitée comme une nouvelle mise à jour, donc le flux de mise à jour habituel et les conditions s'appliquent.

Accélérer une mise à niveau critique avec des notifications

Section intitulée « Accélérer une mise à niveau critique avec des notifications »

Repointing un canal prend normalement effet la prochaine fois qu'un appareil vérifie une mise à jour. Capgo Les notifications peuvent envoyer une notification de vérification de mise à jour silencieuse à une application prise en charge, même si elle est en arrière-plan. Avec l'intégration de l'actualiseur activée, l'application peut vérifier, télécharger et installer la mise à niveau inverse selon son mode de mise à jour configuré.

Ceci est un chemin d'accélération, pas une commande de flotte forcée. La livraison reste de meilleure qualité et dépend de la planification de l'arrière-plan du système d'exploitation, de la disponibilité du réseau et de l'état de l'appareil. Elle ne peut pas mettre à jour une application hors ligne ou forcer la fermeture, donc elle ne peut pas promettre un temps fixe pour atteindre tous les appareils.

Pour configurer ce chemin, suivez Notifications : Activer les vérifications silencieuses de mise à jour.

Si vous souhaitez suspendre temporairement les mises à jour sur un canal pendant que vous enquêtez sur un problème, vous pouvez délier le canal de sa version actuelle.

To délier un canal :

  1. Naviguez vers le canal dans le tableau de bord Capgo.

  2. Cliquez sur le bouton « Déléter » à côté de la version actuelle.

  3. Confirmez que vous souhaitez délier le canal.

Une fois qu'un canal est délié, il ne distribuera plus de mises à jour. Les appareils configurés sur ce canal resteront sur leur version actuelle jusqu'à ce que le canal soit lié à une nouvelle version.

Cela est utile si vous avez identifié un problème avec une mise à jour mais n'êtes pas encore sûr de la version à laquelle vous souhaitez revenir. Délier le canal vous donne du temps pour enquêter sans pousser de nouvelles mises à jour.

Dans des situations plus graves, vous pouvez vouloir rétablir tous les appareils sur un canal à la version web qui était initialement empaquetée avec votre application native. Cela s'appelle le « bundle intégré ».

Pour forcer le bundle intégré sur un canal :

  1. Naviguez vers le canal dans le tableau de bord Capgo.

  2. Cliquez sur le bouton « Bundle Intégré ».

  3. Confirmez que vous souhaitez forcer le bundle intégré.

Quand vous forcez le bundle intégré, tous les appareils configurés sur ce canal reverront à la version web initiale empaquetée lors de leur prochaine vérification de mise à jour. Cela se produit quel que soit la version sur laquelle ils se trouvent actuellement.

Ceci est une option de reversion plus agressive que la reversion à une version précédente spécifique, car elle élimine toutes les mises à jour en direct publiées depuis la dernière mise à jour de l'application dans les magasins d'applications.

Pour détecter les problèmes rapidement et minimiser l'impact des mises à jour problématiques, il est important de disposer d'un plan pour surveiller vos releases et répondre aux problèmes.

Certains stratagèmes incluent :

Pour un lancement limité à un groupe, utilisez Rollouts progressifs pour suspendre l'exposition ou effacer son cible avant de modifier le bundle stable pour tout le canal.

  • Surveiller les rapports de crash et les commentaires des utilisateurs immédiatement après la mise à jour d'une mise à jour.
  • Utiliser des déploiements étalés ou un système de canal étalé pour tester les mises à jour sur un groupe plus petit avant une large diffusion.
  • Disposer d'un processus de décision clair pour savoir quand revenir en arrière, délier ou forcer le bundle intégré, et qui a l'autorité pour le faire.
  • Communiquer aux utilisateurs sur le problème et la résolution, si nécessaire.

En combinant une surveillance soigneuse avec la capacité de gérer rapidement les mises à jour problématiques, vous pouvez livrer une expérience d'application en constante amélioration tout en minimisant les perturbations pour vos utilisateurs.

Si vous utilisez Rollbacks pour planifier le retrait et le contrôle de version, connectez-l’avec Version Ciblée Mise à jour de détail pour la cible de version dans Version Cible Mise à jour Mise à jour de détail pour la mise à jour dans Mise à jour bundle Mise à jour de détail pour le bundle Capgo Live Updates for the product workflow in Capgo Live Updates, and Rollback Strategies for Capacitor Live Updates for the practical context in Rollback Strategies for Capacitor Live Updates.