Cambios importantes
Copia un prompt de configuración con los pasos de instalación y la guía completa en markdown para este plugin.
Esta documentación explica cómo gestionar cambios incompatibles en tu app usando canales versionados. Este enfoque te permite mantener diferentes versiones de tu app asegurando que los usuarios reciban actualizaciones compatibles.
Escenario de ejemplo
Sección titulada “Escenario de ejemplo”Digamos que tienes:
- Versión de app 1.2.3 (versión antigua) - usa el canal production
- Versión de app 2.0.0 (nueva versión con cambios incompatibles) - usa el canal v2
- Live update 1.2.4 (compatible con 1.2.3)
- Live update 2.0.1 (compatible con 2.0.0)
Estrategia: usa siempre defaultChannel para las versiones principales
Sección titulada “Estrategia: usa siempre defaultChannel para versiones principales”Enfoque recomendado: Configura 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 releasesdefaultChannel: 'v1'
// Version 2.x releasesdefaultChannel: 'v2'
// Version 3.x releases (future)defaultChannel: 'v3'1. Crear canal para la nueva versión
Sección titulada “1. Crear canal para la nueva versión”# Create channel for version 2.xnpx @capgo/cli channel add v22. Actualizar la config de Capacitor para la versión 2.0.0
Sección titulada “2. Actualizar la config de Capacitor para la versión 2.0.0”Actualiza tu configuración de Capacitor antes de compilar la versión 2.0.0 para la app store:
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;3. Gestionar ramas separadas de Code
Sección titulada “3. Gestionar ramas separadas de Code”Crea ramas de Git separadas para mantener la compatibilidad entre versiones de la app:
# Create and maintain a branch for version 1.x updatesgit checkout -b v1-maintenancegit push origin v1-maintenance
# Your main branch continues with version 2.x developmentgit checkout mainCrítico: Nunca subas bundles de JavaScript a apps antiguas que esperen code/APIs nativas que no tengan. Genera siempre las actualizaciones desde la rama correspondiente:
- rama v1-maintenance: Para actualizaciones de apps 1.x (canal de producción)
- rama main: Para actualizaciones de apps 2.x (canal v2)
4. Subir bundles a sus respectivos canales
Sección titulada “4. Sube los bundles a los canales correspondientes”# For 1.x updates: Build from v1-maintenance branchgit checkout v1-maintenance# Make your 1.x compatible changes herenpx @capgo/cli bundle upload --channel production
# For 2.x updates: Build from main branchgit checkout main# Make your 2.x changes herenpx @capgo/cli bundle upload --channel v25. Habilitar la autoasignación
Sección titulada “5. Habilitar autoasignación”# Allow apps to self-assign to v2 channelnpx @capgo/cli channel set v2 --self-assign6. Desplegar en la App Store
Sección titulada “6. Desplegar en App Store”Compila y despliega la versión 2.0.0 en la app store. Todos los usuarios que descarguen esta versión (ya sean nuevos o existentes que actualicen) usarán automáticamente el canal v2, ya que está configurado en el bundle de la app.
Escalado a futuras versiones
Sección titulada “Escalar a versiones futuras”Cuando publiques la versión 3.0.0 con más cambios incompatibles:
# Create channel for version 3.xnpx @capgo/cli channel add v3// capacitor.config.ts for version 3.0.0const config: CapacitorConfig = { // ... plugins: { CapacitorUpdater: { defaultChannel: 'v3' // Version 3.x users } }};Ahora puedes enviar actualizaciones a cualquier versión:
productioncanal → Usuarios de la versión 1.xv2canal → Usuarios de la versión 2.xv3canal → Usuarios de la versión 3.x
7. Limpieza (tras la migración)
Sección titulada “7. Limpieza (después de la migración)”Una vez que todos los usuarios hayan migrado a la versión 2.x (aprox. 3-4 meses):
- Eliminar
defaultChannelde tu configuración de Capacitor - Elimina el canal v2:
npx @capgo/cli channel delete v2- Elimina la rama v1-maintenance:
git branch -d v1-maintenancegit push origin --delete v1-maintenancePrueba siempre a fondo las actualizaciones en cada canal antes de desplegarlas
Mantener las actualizaciones de la versión 1.x
Sección titulada “Mantenimiento de actualizaciones de la versión 1.x”Para enviar actualizaciones compatibles con la versión 1.x:
- Cambia a la rama v1-maintenance:
git checkout v1-maintenance- Realiza tus cambios y haz commit:
# Make 1.x compatible changesgit add .git commit -m "Fix for v1.x"git push origin v1-maintenance- Compila y sube al canal de producción:
npx @capgo/cli bundle upload --channel productionContinuar a partir de Breaking Changes
Sección titulada “Continuar desde Breaking Changes”Si estás usando Cambios importantes para planificar el enrutamiento de canales y el despliegue gradual, conéctalo con Canales para los detalles de implementación en Channels, Canales para los detalles de implementación en Channels, Canales para los detalles de implementación en Channels, Solución de beta testing para el workflow del producto en la solución de beta testing, y Solución de segmentación por versión para el workflow del producto en la solución de segmentación por versión.