¿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:
- Instala el plugin updater de Capgo.
- Configura la versión de tu app en
capacitor.config.jsony otros archivos. - Inicializa con tu clave de API.
- Usa Capgo CLI para hacer el bundle y subir las actualizaciones.
-
- 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

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)versioncampo)android/app/build.gradle(actualizaversionName)ios/App/App.xcodeproj/project.pbxproj(actualizaCURRENT_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
autoUpdateafalsedurante 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:
- Haz un rollback a un bundle estable anterior.
- Incrementa los números de versión para cada nuevo fix (nota: no se pueden reutilizar números de versión tras eliminarlos) [2].
- 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.