Saltar al contenido

Rollbacks

Mientras que las actualizaciones en vivo de Capgo te permiten entregar mejoras y correcciones a tus usuarios de manera rápida, puede haber situaciones en las que necesites retroceder a una versión anterior de tu aplicación. Quizás una nueva actualización introdujo un problema crítico inesperado, o tal vez deseas revertir un cambio mientras trabajas en una solución.

Capgo ofrece varias formas de gestionar las compilaciones de un canal y controlar la versión de tu aplicación que reciben los usuarios, incluidas tanto opciones de retroceso manual como mecanismos de seguridad automáticos.

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__ incluye un mecanismo de seguridad integrado para proteger a tus usuarios de actualizaciones rotas. Si ocurre un error de JavaScript antes de que se llame el método, el plugin se desplomará automáticamente hacia la versión anterior que funcionaba.

When a new update is downloaded and applied, Capgo expects your app to call notifyAppReady() dentro de un plazo configurable para confirmar que la actualización se ha cargado correctamente. Este método indica que:

  • The JavaScript bundle loaded without critical errors
  • La carga del paquete JavaScript se realizó sin errores críticos
  • Your app’s core functionality is working

La funcionalidad básica de tu aplicación está funcionando notifyAppReady() is not called due to a JavaScript crash or critical error, Capgo will:

  1. La actualización es segura para mantenerla
  2. If
  3. Si no se llama debido a un error de JavaScript o un error crítico, __CAPGO_KEEP_0__ hará que:
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

Esta protección automática ayuda a asegurarse de que incluso si accidentalmente envías una actualización rota, tus usuarios no se quedarán con una aplicación no funcional.

Puedes configurar cuánto tiempo Capgo espera a que notifyAppReady() se llame estableciendo el appReadyTimeout en tu configuración de Capacitor:

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

La appReadyTimeout El valor se especifica en milisegundos. El tiempo de espera predeterminado es típicamente de 10 segundos, pero puede ajustarlo según las necesidades de inicialización de su aplicación. Si su aplicación tarda más en cargar debido a procesos de inicialización complejos, puede desear aumentar este valor.

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.

Interfaz de retroceso

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.

Para retroceder utilizando la pestaña Historial:

  1. Iniciar sesión en la Capgo Dashboard.

  2. Navegue a la sección ‘Canales’.

  3. Haga clic en el nombre del canal que desea retroceder.

  4. Vaya a la cuarta pestaña (Historial) en la vista del canal.

  5. Encuentre la compilación que desea revertir en el historial de compilaciones.

  6. Seleccione esa compilación para hacerla la compilación activa para el canal.

  7. Confirme que desea retroceder a esta compilación.

Como una segunda forma, también puede retroceder directamente desde la primera pestaña haciendo clic en el icono de corona junto a cualquier compilación en el historial de compilaciones del canal:

  1. En la primera pestaña de la vista del canal, encuentre la compilación que desea revertir.
  2. Haga clic en el icono de corona junto a esa compilación para hacerla la compilación activa para el canal. Opciones de gestión del canal
  3. Confirme que desea retroceder a esta compilación.

Después del retroceso, los dispositivos configurados para escuchar el canal actualizado recibirán la versión anterior la próxima vez que revisen actualizaciones. La versión retrocedida se tratará como una nueva actualización, por lo que se aplican el flujo de actualización y las condiciones habituales.

Reconfigurar un canal normalmente tiene efecto la próxima vez que un dispositivo revise actualizaciones. Capgo Las notificaciones pueden enviar una notificación de revisión de actualizaciones silenciosa a una aplicación compatible mientras está en segundo plano. Con la integración del actualizador habilitada, la aplicación puede revisar, descargar e instalar el retroceso según su configuración de modo de actualización.

Esta es una ruta de aceleración, no una orden de comando de flota forzada. La entrega sigue siendo de mejor esfuerzo y depende de la programación de fondo del sistema operativo, la disponibilidad de la red y el estado del dispositivo. No puede actualizar una aplicación en modo offline o forzada a cerrar, por lo que no puede prometer un tiempo fijo para llegar a cada dispositivo.

Para configurar esta ruta, sigue Notificaciones: Habilita Revisión de Actualizaciones Silenciosas.

Si deseas detener temporalmente las actualizaciones en un canal mientras investigas un problema, puedes desvincular el canal de su versión actual.

Para desvincular un canal:

  1. Navegue hasta el canal en la Consola de Capgo.

  2. Haga clic en el botón “Desvincular” junto al último build.

  3. Confirme que desea desvincular el canal.

Una vez que un canal esté desvinculado, no distribuirá actualizaciones nuevas. Los dispositivos configurados para ese canal permanecerán en su build actual hasta que el canal esté vinculado a un build nuevamente.

Esto es útil si ha identificado un problema con una actualización pero aún no está seguro de qué build quiere revertir. Desvincular el canal le da tiempo para investigar sin enviar actualizaciones adicionales.

En situaciones más graves, puede querer revertir todos los dispositivos de un canal a la build web que se empaquetó originalmente con el binario nativo de su aplicación. Esto se conoce como el “paquete integrado”.

Para forzar el paquete integrado en un canal:

  1. Navegue hasta el canal en la Consola de Capgo.

  2. Haga clic en el botón “Paquete Integrado”.

  3. Confirme que desea forzar el paquete integrado.

Cuando fuerzas el paquete integrado, todos los dispositivos configurados en ese canal volverán a la versión web original empaquetada en su próxima verificación de actualizaciones. Esto sucede sin importar qué versión estén actualmente.

Esta es una opción de devolución más agresiva que reversionar a una versión de construcción específica anterior, ya que descarta todas las actualizaciones en vivo publicadas desde que la aplicación se publicó en las tiendas de aplicaciones.

Para detectar problemas rápidamente y minimizar el impacto de actualizaciones problemáticas, es importante tener un plan para monitorear sus lanzamientos y responder a problemas.

Algunas estrategias incluyen:

Para un lanzamiento que todavía está limitado a un grupo de cohortes, utilice Despliegues progresivos pausar la exposición o eliminar su objetivo antes de cambiar el paquete estable para todo el canal.

  • Monitorear informes de errores y retroalimentación de usuarios inmediatamente después de liberar una actualización.
  • Usar rollouts en fases o un sistema de canal estadiado para probar actualizaciones en un grupo más pequeño antes de su amplia liberación.
  • Tener un proceso de decisión claro para cuando revertir, desconectar o forzar el paquete incorporado, y quién tiene la autoridad para hacerlo.
  • Comunicarse con los usuarios sobre el problema y la resolución, si corresponde.

Al combinar la monitoreo cuidadoso con la capacidad de gestionar rápidamente actualizaciones problemáticas, puedes entregar una experiencia de aplicación que mejora continuamente mientras minimizas las interrupciones para tus usuarios.

Si estás utilizando Revertir para planificar la reversión y el control de versiones, conecta con Objetivo de Versión para los detalles de implementación en Version Targeting, Comportamiento de Actualización para los detalles de implementación en Comportamiento de Actualización, paquete para los detalles de implementación en paquete, Capgo Actualizaciones en Vivo for the product workflow in Capgo Live Updates, and para el flujo de trabajo del producto en Capacitor Actualizaciones en Vivo, y Estrategias de Reversión para Capacitor Actualizaciones en Vivo