Pular al contenido

Cambios de ruptura

Esta documentación explica cómo manejar cambios disruptivos en tu aplicación utilizando canales versionados. Esta aproximación permite mantener diferentes versiones de tu aplicación mientras se garantiza que los usuarios reciben actualizaciones compatibles.

Digamos que tienes:

  • Versión de la aplicación 1.2.3 (versión antigua) - utiliza el canal de producción
  • Versión de la aplicación 2.0.0 (nueva versión con cambios de ruptura) - utiliza el canal v2
  • Actualización en vivo 1.2.4 (compatible con 1.2.3)
  • Actualización en vivo 2.0.1 (compatible con 2.0.0)

Estrategia: Siempre Utiliza defaultChannel para versiones principales

Sección titulada “Estrategia: Siempre Utiliza defaultChannel para versiones principales”

Enfoque recomendado: Establecer un defaultChannel para cada versión principal. Esto garantiza que siempre puedas enviar actualizaciones a grupos de usuarios específicos sin depender de la asignación dinámica de canales.

// Version 1.x releases
defaultChannel: 'v1'
// Version 2.x releases
defaultChannel: 'v2'
// Version 3.x releases (future)
defaultChannel: 'v3'
Ventana de terminal
# Create channel for version 2.x
npx @capgo/cli channel create v2

2. Actualice la configuración de Capacitor para la versión 2.0.0

Sección titulada “2. Actualice la configuración de Capacitor para la versión 2.0.0”

Actualice su configuración de Capacitor antes de compilar la versión 2.0.0 para la tienda de aplicaciones:

capacitor.config.ts
import { CapacitorConfig } from '@capacitor/cli';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'Example App',
plugins: {
CapacitorUpdater: {
// ... other options
defaultChannel: 'v2' // All 2.0.0 users will use v2 channel
}
}
};
export default config;

Crear ramas de Git separadas para mantener la compatibilidad entre versiones de la aplicación:

ventana de terminal
# Create and maintain a branch for version 1.x updates
git checkout -b v1-maintenance
git push origin v1-maintenance
# Your main branch continues with version 2.x development
git checkout main

Crítico: Jamás envíe paquetes de JavaScript a aplicaciones más antiguas que esperan APIs nativas code que no tienen. Siempre construya actualizaciones desde la rama adecuada:

  • rama de mantenimiento v1: Para actualizaciones de aplicaciones 1.x (canales de producción)
  • rama principal: Para actualizaciones de aplicaciones 2.x (canales v2)
Ventana de terminal
# For 1.x updates: Build from v1-maintenance branch
git checkout v1-maintenance
# Make your 1.x compatible changes here
npx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branch
git checkout main
# Make your 2.x changes here
npx @capgo/cli bundle upload --channel v2
Ventana de terminal
# Allow apps to self-assign to v2 channel
npx @capgo/cli channel set v2 --self-assign

Nota

Cuando liberes la versión 3.0.0 con más cambios de ruptura:

ventana de terminal
# Create channel for version 3.x
npx @capgo/cli channel create v3
// capacitor.config.ts for version 3.0.0
const config: CapacitorConfig = {
// ...
plugins: {
CapacitorUpdater: {
defaultChannel: 'v3' // Version 3.x users
}
}
};

Ahora puedes enviar actualizaciones a cualquier versión:

  • production canal → Usuarios de la versión 1.x
  • v2 canal → Usuarios de versión 2.x
  • v3 canal → Usuarios de versión 3.x

Una vez que todos los usuarios hayan migrado a la versión 2.x (contar 3-4 meses):

  1. Eliminar defaultChannel de su Capacitor configuración
  2. Borrar el canal v2:
Ventana de terminal
npx @capgo/cli channel delete v2
  1. Borrar la rama v1-mantenimiento:
Ventana de terminal
git branch -d v1-maintenance
git push origin --delete v1-maintenance

Siempre prueba las actualizaciones exhaustivamente en cada canal antes de la implementación

Para enviar actualizaciones compatibles con la versión 1.x:

  1. Cambiar a la rama de mantenimiento v1:
Ventana del terminal
git checkout v1-maintenance
  1. Haz tus cambios y haz commit:
Ventana del terminal
# Make 1.x compatible changes
git add .
git commit -m "Fix for v1.x"
git push origin v1-maintenance
  1. Construye y sube a producción:
Ventana del terminal
npx @capgo/cli bundle upload --channel production

Si estás utilizando Cambios de ruptura para planificar la ruta de canales y la implementación de lanzamiento etapado, conecta con Canales para obtener detalles de implementación en Canales, Canales para obtener detalles de implementación en Canales, Canales para obtener detalles de implementación en Canales, Solución de Pruebas Beta para el flujo de trabajo del producto en Solución de Pruebas Beta, y Solución de Enfoque de Versión para el flujo de trabajo del producto en Solución de Enfoque de Versión.