Saltar al contenido principal

Cómo usar Semantic Versioning con las actualizaciones OTA de Capgo

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

Cómo usar Semantic Versioning con las actualizaciones OTA de Capgo

¿Quieres simplificar las actualizaciones y el control de versiones? Versionado Semántico (SemVer) combinado con Capgo’s Over-The-Air (OTA) updates makes managing Capacitor apps de forma más rápida. Así es como se hace:

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

    • MAJOR: Para cambios que rompen la compatibilidad.
    • MINOR: Para nuevas funcionalidades con compatibilidad hacia atrás.
    • PATCH: Para corrección de 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 updater 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 hacer el bundle y subir las actualizaciones.
  • Gestiona versiones y canales:

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

    • Actualiza los números de versión siguiendo las reglas de SemVer.
    • Testea a fondo antes de desplegar.
    • Usa 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 con workflows de CI/CD para automatizar updates.

Tip rápido: Testea siempre las actualizaciones y usa canales para gestionar rollouts escalonados con eficacia.

Versionado Semántico | Sube de nivel

Capgo Setup Guide

Interfaz del Dashboard de Capgo Live Update

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

Pasos de configuración inicial

Empieza instalando el plugin updater de Capgo:

npm install @capgo/capacitor-updater  
npx cap sync

Asegúrate de que tu capacitor.config.json archivo use un formato de versión semántico:

{ 
  "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 (busca el) 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 Comprueba package.json
Configuración Configurar números de versión Verificar en todos los archivos
Inicialización Conectar con la clave API Probar estado de conexión
Build Crear bundle inicial Confirmar éxito de upload

Integración con control de versiones

Capgo funciona bien con plataformas CI/CD, permitiendo updates automatizados simple. Las plataformas compatibles incluyen:

Si estás en desarrollo local, puedes desactivar las auto-updates añadiendo esto a tu configuración:

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

Esto asegura que Capgo no sobrescriba tus cambios locales. Cuando tu setup esté listo, 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();

Este setup garantiza 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 apps, con el formato: MAYOR.MENOR.PARCHE. Así es como funciona:

  • Versión Major (X.0.0): Incrementa el número MAJOR para cambios que rompan la compatibilidad.
  • Versión Minor (1.X.0): Incrementa el número MINOR para nuevas funcionalidades compatibles.
  • Versión Patch (1.0.X): Incrementa el número PATCH para correcciones de errores sin afectar la compatibilidad.
Tipo de versión Cuándo incrementar Comportamiento de Auto-Update
Mayor (X.0.0) Para cambios disruptivos en API Requiere aprobación manual
Menor (1.X.0) Para nuevas funcionalidades Configurable en Capgo
Patch (1.0.X) Para corrección de bugs Suele ser automático

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

Guía de Control de Versiones

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

  • Gestión de versiones por canales: Organiza tu 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 de “production” (ej. 1.2.0) para lanzamientos estables.
    • Añade canales específicos por plataforma (ej. “ios-hotfix” con versión 1.2.1) para resolver errores puntuales.
  • Configuración de la política de updates: Controla cómo se aplican los updates usando las opciones de configuración de Capgo. Por ejemplo:

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

    Esta configuración asegura que los usuarios reciban patch updates automáticamente, mientras que los minor y major updates 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 updates, el testeo de funciones y la estabilidad en el despliegue de tu app.

sbb-itb-f9944d2

Despliegue de OTA Updates

Una vez configurada la gestión de versiones, sigue estos pasos para desplegar OTA updates de forma eficaz.

Preparación de la actualización

Empieza actualizando la versión en package.json y 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 importante (Breaking Change): Incrementa el número MAJOR (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 update. Puedes elegir entre:

  • Auto-Update: Aplica automáticamente los requisitos de versión mínima.
  • Control Manual: Especifica requisitos de versión exactos para los updates.
  • Basado en Channels: Usa channels para testing y rollouts escalonados.

Comandos de CLI de Capgo

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 despliegues seguros con cifrado de extremo a extremo y gestión de llaves segura.

“@Capgo es una forma inteligente de hacer pushes de code en caliente (y no te cuesta un ojo de la cara como con @AppFlow) 🙂”

Una vez desplegado, puedes monitorear los updates desde el dashboard de Capgo. Los updates suelen llegar a los usuarios minutos después de abrir la app. El proceso funciona así:

  • La app busca updates.
  • Descarga el update en segundo plano.
  • Marca la nueva versión como activa cuando el usuario cierra la app.
  • Aplica el update en el siguiente inicio.

Para despliegues de nivel enterprise, podrías querer integrar automatización de CI/CD.

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

Solución de problemas y tips

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:

  • Establecer autoUpdate a false durante el desarrollo.
  • Desinstala la app.
  • Reinstálala con la versión corregida.
  • Vuelve a activar las auto-updates 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, mantendrás la consistencia de versiones y reducirás errores.

Control de versiones en equipo

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

“Probar cada cambio antes de hacer el merge con el repositorio principal reforzará la estabilidad y evitará errores costosos” [4]

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

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

Para equipos grandes, esta matriz de gestión de versiones puede ayudar a organizar las actualizaciones:

Entorno Channel Auto-Update Patrón de versión
Desarrollo dev Desactivado 0.x.x
Staging beta Activado x.x.x-beta
Producción estable Activado x.x.x

Pasos de recuperación

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

  1. Haz un rollback a un bundle estable anterior.
  2. Incrementa los números de versión para cada nuevo fix (nota: no se pueden reutilizar números de versión tras eliminarlos) [2].
  3. Verifica las actualizaciones al iniciar la app para asegurar que funcionen correctamente.

El actualizador de Capgo está diseñado para gestionar 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 peticiones de red fallidas se reintentan automáticamente en el siguiente inicio de la app [3]. Esta resiliencia integrada minimiza el downtime y garantiza operaciones más fluidas.

Resumen

El Semantic Versioning, junto con Capgo, ha hecho que las actualizaciones OTA para apps 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 devs lanzar actualizaciones rápido y de forma controlada, evitando los retrasos de las app stores.

Esto es lo que dicen los desarrolladores:

“Implementamos actualizaciones OTA de Capgo en producción para nuestra base de +5000 usuarios. Todo funciona muy fluido; casi todos nuestros usuarios están al día 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 económica: ahorra 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 crítico para hacer entregas continuas a nuestros usuarios!” - Rodrigo Mantica [1]

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

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

Live Updates para apps de Capacitor

Si hay un bug en la capa web, publica el fix con 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 proceso de revisión normal.

Lo último de nuestro blog

Capgo te da los mejores insights para crear una app móvil realmente profesional.