Saltar al contenido principal

Cómo usar Semantic Versioning con actualizaciones OTA de Capgo

Aprende a optimizar las actualizaciones y el control de versiones de tu app con Semantic Versioning y las actualizaciones OTA de Capgo para apps de Capacitor.

Cómo usar versionado semántico con actualizaciones OTA de Capgo Capgo ilustración del blog

¿Quieres simplificar de apps más rápidas y el control de versiones? Versionado Semántico (SemVer) combinado con Capgosus actualizaciones Over-The-Air (OTA) facilitan la gestión de Capacitor apps de forma más fácil y rápida. Así es como:

  • Conceptos básicos de Semantic Versioning: Las versiones usan el formato MAJOR.MINOR.PATCH:

    • MAJOR: Para cambios incompatibles.
    • MINOR: Para nuevas funcionalidades retrocompatibles.
    • PATCH: Para corregir bugs.
  • ¿Por qué usar SemVer con Capgo?

    • Comunicación clara sobre las actualizaciones.
    • Gestión de versiones más inteligente.
    • Evita conflictos de dependencias.
    • Planificación de lanzamientos organizada.
  • Capgo Setup Pasos:

    1. Instala el plugin de actualizaciones de Capgo.
    2. Configura la versión de tu app en capacitor.config.json y otros archivos.
    3. Inicializa con tu clave de API.
    4. Usa Capgo CLI para crear el bundle y subir las actualizaciones.
  • Gestionar versiones y canales:

    • Usa canales separados (p. ej., “beta” para pruebas, “production” para versiones estables).
    • Controla las políticas de actualización (auto-actualización de parches, aprobación manual para cambios mayores).
    • Opciones de rollback para actualizaciones fallidas.
  • Proceso de despliegue:

    • Actualiza los números de versión siguiendo las reglas de SemVer.
    • Prueba a fondo antes de desplegar.
    • Usa los comandos de CLI para subir y distribuir actualizaciones.

Capgo garantiza que las actualizaciones lleguen a los usuarios de forma rápida y fiable, con herramientas para gestionar interrupciones y mantener la estabilidad. Ideal para equipos que usan flujos de trabajo CI/CD para automatizar actualizaciones.

Consejo rápido: Prueba siempre las actualizaciones y usa canales para gestionar despliegues progresivos de forma efectiva.

Versionado Semántico | Level Up

Capgo Setup Guide

Interfaz del dashboard de Capgo Live Update

Así puedes configurar Capgo para gestionar actualizaciones OTA y el control de versiones fácilmente.

Pasos de configuración inicial

Empieza instalando el plugin de actualización Capgo:

npm install @capgo/capacitor-updater  
npx cap sync

Asegúrate de que tu capacitor.config.json el archivo usa un formato de versión semántica:

{ 
  "appId": "com.example.app", 
  "appName": "My App", 
  "version": "1.0.0" 
}

Para proyectos antiguos, actualiza los detalles de la versión en estas ubicaciones:

  • package.json (look for the version campo)
  • android/app/build.gradle (actualiza versionName)
  • ios/App/App.xcodeproj/project.pbxproj (actualiza CURRENT_PROJECT_VERSION)

Una vez configurado, inicializa Capgo con tu clave API:

npx @capgo/cli@latest init YOUR_API_KEY

Tabla de referencia rápida:

Setup Phase Acción clave Paso de verificación
Instalación Instala el plugin y sincroniza Verificar package.json
Configuración Establecer números de versión Verificar en todos los archivos
Inicialización Conectar con la clave de API Estado de la conexión
Build Crear bundle inicial Confirmar subida exitosa

Integración con control de versiones

Capgo funciona bien con plataformas CI/CD, lo que hace actualizaciones automáticas sencillo. Plataformas compatibles:

Si estás trabajando en desarrollo local, puedes desactivar las actualizaciones automáticas añadiendo esto a tu configuración:

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

Esto asegura que Capgo no sobrescriba tus cambios locales. Una vez que tu configuración esté lista, sube tu primera versión:

npx @capgo/cli@latest bundle upload  
npx @capgo/cli@latest channel set production -s default

Finalmente, notifica al plugin nativo sobre el estado del bundle en el archivo principal de tu app:

import { CapacitorUpdater } from '@capgo/capacitor-updater';  
CapacitorUpdater.notifyAppReady();

Esta configuración asegura que tu app esté lista para despliegues OTA fluidos y gestión de versiones.

Uso de Semantic Versioning con Capgo

Gestión de números de versión

Capgo usa Semantic Versioning (SemVer) para gestionar versiones de la app, con el formato MAYOR.MENOR.PARCHE. Así es como funciona:

  • Versión mayor (X.0.0): Incrementa el número MAJOR para cambios que rompen la compatibilidad.
  • Versión menor (1.X.0): Incrementa el número MINOR para nuevas funcionalidades que siguen siendo compatibles.
  • Versión de parche (1.0.X): Incrementa el número PATCH para correcciones de errores que no afectan la compatibilidad.
Tipo de versión Cuándo incrementar Comportamiento de la actualización automática
Mayor (X.0.0) Para cambios incompatibles en API Requiere aprobación manual
Menor (1.X.0) Para nuevas funcionalidades Configurable en Capgo
Parche (1.0.X) Para corregir bugs Suele ser automático

Al seguir las reglas de SemVer, simplificas la gestión de versiones y aseguras actualizaciones más fluidas en tus canales de despliegue.

Pautas de control de versiones

Capgo te permite gestionar despliegues eficazmente configurando canales distintos para cada etapa de tu workflow.

  • Gestión de versiones por canales: Organiza tu proceso de despliegue creando canales separados para testing y producción. Por ejemplo:

    • Usa un canal “beta” (ej. 1.2.0-beta) para probar nuevas funcionalidades.
    • Mantén un canal “production” (ej. 1.2.0) para versiones estables.
    • Añade canales específicos por plataforma (ej. “ios-hotfix” con versión 1.2.1) para resolver problemas específicos de plataforma.
  • Configuración de la política de actualizaciones: Controla cómo se aplican las actualizaciones usando las opciones de configuración de Capgo. Por ejemplo:

    {
      "plugins": {
        "CapacitorUpdater": {
          "disableAutoUpdate": "minor"
        }
      }
    }

    Esta configuración garantiza que los usuarios reciban automáticamente los patch updates, mientras que las actualizaciones minor y major requieren aprobación manual.

  • Estrategia de rollback de versiones: Usa identificadores de pre-release para tener opciones de rollback claras. Esto te permite volver a una versión anterior si hay problemas, manteniendo el versionado consistente en todos los canales.

Estas buenas prácticas facilitan la gestión de actualizaciones, el testeo de nuevas funciones y la estabilidad en el proceso de deployment de tu app.

sbb-itb-f9944d2

Despliegue de actualizaciones OTA

Una vez configurado el control de versiones, sigue estos pasos para desplegar actualizaciones OTA de forma efectiva.

Preparación de la actualización

Empieza actualizando la versión en package.json y archivo capacitor.config.json. Asegúrate de que la versión siga el formato SemVer (MAJOR.MINOR.PATCH):

  • Bug Fix: Incrementa el número de PATCH (ej. 1.0.1 → 1.0.2)
  • Nueva funcionalidad: Incrementa el número de MINOR (ej. 1.0.0 → 1.1.0)
  • Cambio incompatible: Incrementa el número MAJOR (p. ej., 1.0.0 → 2.0.0)

Testea a fondo tu build y confirma que la app se comunica con el servidor usando notifyAppReady.

Luego, decide tu estrategia de actualización. Puedes elegir entre:

  • Auto-Update: Aplica automáticamente los requisitos de versión mínima.
  • Control manual: Especifica requisitos de versión exactos para las actualizaciones.
  • Basado en canales: Usa canales para pruebas y despliegues escalonados.

Comandos de actualización de Capgo CLI

Usa el CLI de Capgo para desplegar tu actualización fácilmente. Aquí tienes cómo:

# Initialize Capgo in your project
npx @capgo/cli@latest init [apikey]

# Upload your update bundle
npx @capgo/cli bundle upload [appId]

# Add a new distribution channel
npx @capgo/cli channel add [channelName] [appId]

Capgo garantiza un despliegue seguro con cifrado de extremo a extremo y gestión segura de claves.

“@Capgo es una forma inteligente de hacer hot code pushes (y no por todo el dinero del mundo como con @AppFlow) 🙂”

Una vez desplegado, puedes monitorear las actualizaciones desde el dashboard de Capgo. Las actualizaciones suelen llegar a los usuarios a los pocos minutos de abrir la app. El proceso funciona así:

  • La app busca actualizaciones.
  • Descarga la actualización en segundo plano.
  • Marca la nueva versión como activa cuando el usuario sale de la app.
  • Aplica la actualización en el siguiente inicio.

Para despliegues de nivel empresarial, quizá quieras integrar automatización de CI/CD.

“Practicamos el desarrollo ágil y @Capgo es crítico para entregar continuamente a nuestros usuarios!”

Solución de problemas y consejos

Problemas de gestión de versiones

Gestionar el versionado semántico en Capgo puede complicar el despliegue de actualizaciones. Para evitar sobrescribir tu trabajo de desarrollo, configura lo siguiente en tu capacitor.config.json archivo:

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

Si una actualización falla, esto es lo que puedes hacer:

  • Configurar autoUpdate a false durante el desarrollo.
  • Desinstala la app.
  • Reinstálala con la versión corregida.
  • Vuelve a activar las actualizaciones automáticas cuando todo sea estable.

Para actualizaciones de versiones mayores, usa el disableAutoUpdateBreaking flag y escucha el majorAvailable event to handle updates properly:

CapacitorUpdater.addListener('majorAvailable', (info) => {
  console.log(`Major update available: ${info.version}`);
  // Add your update prompt logic here
});

Al combinar estas configuraciones con buenas prácticas de equipo, puedes mantener la consistencia de versiones y reducir errores.

Control de versiones en equipo

Una vez gestionadas las actualizaciones individuales, es clave que los equipos establezcan prácticas sólidas de control de versiones.

«Probar cada cambio antes de fusionarlo con el repositorio principal reforzará la estabilidad y evitará errores costosos» [4]

Aquí tienes algunos métodos para garantizar la consistencia:

  • Define una rama como la repositorio principal que actúe como fuente de verdad.
  • Usa canales Capgo separados para entornos de desarrollo y producción.
  • Automatiza las subidas de versiones mediante pipelines CI/CD.
  • Documenta todos los cambios de code con mensajes de commit claros y detallados.

Para equipos más grandes, la siguiente matriz de gestión de versiones puede ayudar a organizar las actualizaciones:

Entorno Canal Auto-Update Patrón de versión
Desarrollo dev Desactivado 0.x.x
Escenografía beta Activado x.x.x-beta
Producción stable Activado x.x.x

Pasos de recuperación de actualizaciones

Aun con precauciones, las actualizaciones pueden fallar. Si eso ocurre, sigue estos pasos de recuperación:

  1. Revertir a un bundle estable anterior.
  2. Incrementa los números de versión para cualquier nueva corrección (nota: los números de versión no se pueden reutilizar tras su eliminación) [2].
  3. Verifica las actualizaciones al iniciar la app para asegurarte de que funcionan como se espera.

El actualizador de Capgo está diseñado para manejar interrupciones. Por ejemplo, si el servidor no está disponible o se elimina una actualización, la app sigue funcionando con normalidad [3]Además, las solicitudes de red fallidas se reintentan automáticamente en el próximo inicio de la app. [3]Esta resiliencia integrada minimiza el tiempo de inactividad y garantiza operaciones más fluidas.

Resumen

Semantic Versioning, junto con Capgo, ha hecho que las actualizaciones OTA para apps de Capacitor sean más eficientes. Con 947,6 millones de actualizaciones entregadas y 1.400 apps en producción usando este sistema [1], los procesos de deployment son un 81% más eficientes [1]. Esta configuración permite a los desarrolladores enviar actualizaciones rápido y de forma controlada, evitando los retrasos de las app stores.

Esto es lo que dicen los desarrolladores:

“Desplegamos las actualizaciones OTA de Capgo en producción para nuestra base de +5000 usuarios. Todo funciona muy fluido; casi todos nuestros usuarios están actualizados a los pocos minutos de desplegar la OTA en @Capgo.” - colenso [1]

El sistema de versionado MAJOR.MINOR.PATCH facilita comunicar breaking changes, nuevas features y bug fixes [5]. Esto es especialmente útil para equipos que gestionan varios releases cada semana mediante la plataforma de Capgo.

de Capgo solución cifrada, integrada con herramientas de CI/CD, también es asequible: reduce los costos hasta $26,100 en cinco años [1]. Sus canales personalizables garantizan que las actualizaciones lleguen a los usuarios adecuados en el momento justo.

“Practicamos desarrollo ágil y @Capgo es fundamental para hacer entregas continuas a nuestros usuarios.” - Rodrigo Mantica [1]

Continuar desde Cómo usar Semantic Versioning con Capgo OTA Updates

Si estás usando Cómo usar Semantic Versioning con actualizaciones OTA de Capgo para planificar rollbacks y control de versiones, conéctalo con Reversiones para los detalles de implementación en Rollbacks, Segmentación por versión para los detalles de implementación en Version Targeting, Comportamiento de actualización por el detalle de implementación en Update Behavior, bundle por el detalle de implementación en el bundle, y Live Updates de Capgo por el flujo de trabajo del producto en Capgo Live Updates.

Live updates para apps Capacitor

Cuando un bug de la capa web está en producción, publica el fix a través de Capgo en lugar de esperar días a la aprobación de la app store. Los usuarios reciben la actualización en segundo plano mientras los cambios nativos siguen el flujo de revisión habitual.

Lo último de nuestro blog

Capgo te da la información clave que necesitas para crear una app móvil realmente profesional.