El etiquetado de versiones es esencial para gestionar Capacitor apps. Garantiza actualizaciones fluidas, rastrea cambios y mejora la fiabilidad de la app en iOS, Android y web. Aquí tienes un resumen rápido:
- Por qué es importante: Rastrea actualizaciones, permite rollbacks y asegura despliegues estables.
- Versionado semántico: Usa MAYOR.MENOR.PARCHE para indicar cambios incompatibles, nuevas funciones o correcciones de errores.
- Sincronización entre plataformas: Alinea los números de versión en
package.json, iOSInfo.plist, y Androidbuild.gradle. - Automatización: Automatiza actualizaciones con scripts de npm y herramientas de CI/CD.
- Live Updates: Herramientas como Capgo entrega actualizaciones al 95% de los usuarios en 24 horas.
- Gestión de betas: Usa canales estructurados para las versiones alpha, beta y producción.
Comparativa rápida
| Característica | Propósito | Ejemplo |
|---|---|---|
| Versionado semántico | Rastrea los cambios con claridad | 1.2.3 → 2.0.0 |
| Sincronizar versiones | Alineación entre plataformas | npx cap sync |
| Automatización | Acelera las actualizaciones de versión | npm version patch |
| Live Updates | Adopción rápida de usuarios | 95% en 24 horas con Capgo |
| Canales beta | Fases de pruebas controladas | 1.3.0-beta.1 |
El tagging de versiones simplifica de apps más rápidas, mantiene a los usuarios satisfechos y permite a los desarrolladores gestionar las versiones de forma eficaz.
Cómo configurar AUTOMÁTICAMENTE tu Capacitor proyecto ⚡️

Configuración de la versión en Capacitor
Sigue estos pasos para asegurar una gestión de versiones consistente en todas las plataformas de tu app Capacitor.
Configurar la versión en package.json
El package.json el archivo sirve como la fuente principal de los detalles de la versión de tu app. Aquí tienes un ejemplo de cómo configurarlo:
{
"name": "your-app-name",
"version": "1.2.3",
"private": true,
"dependencies": {
"@capacitor/core": "5.5.0",
"@capacitor/ios": "5.5.0",
"@capacitor/android": "5.5.0"
}
}
Al actualizar el número de versión, usa las reglas de versionado semántico (SemVer):
- Versión major (1.x.x): Introduce breaking changes.
- Versión minor (x.2.x): Añade nuevas funciones compatibles con versiones anteriores.
- Versión de parche (x.x.3): Corrige errores o realiza pequeñas mejoras.
Sincronizar las versiones de la plataforma
Es importante alinear los números de versión en todas las plataformas para un despliegue fluido de la app. Cada plataforma tiene su propio archivo de configuración para el versionado:
| Plataforma | Archivo de configuración | Clave de versión |
|---|---|---|
| iOS | Info.plist | CFBundleShortVersionString |
| Android | build.gradle | versionName |
| Web | package.json | versión |
Después de actualizar la versión en package.json, usa este comando para sincronizar los cambios con las configuraciones de las plataformas nativas:
npx cap sync
Uso de Capacitor CLI para gestionar versiones
El Capacitor CLI ofrece comandos útiles para gestionar versiones:
# Check the current version of Capacitor
npx cap --version
# Update Capacitor core and platform dependencies
npm install @capacitor/core@latest
npm install @capacitor/ios@latest
npm install @capacitor/android@latest
# Sync version changes to native platforms
npx cap sync
Mantener tu Capacitor CLI actualizado garantiza la compatibilidad con funciones específicas de versión y reduce posibles discrepancias. Seguir estos pasos te ayudará a mantener una correcta gestión de versiones en tu app.
Configuración de versionado semántico
Conceptos básicos del versionado semántico
Versionado Semántico (SemVer) usa el formato MAYOR.MENOR.PARCHE, donde cada parte indica un tipo específico de cambio:
| Componente de versión | Propósito |
|---|---|
| MAJOR | Introduce cambios incompatibles en API |
| MINOR | Añade nuevas funcionalidades compatibles con versiones anteriores |
| PATCH | Corrige bugs o mejora el rendimiento sin romper la compatibilidad |
Este sistema permite a los desarrolladores comunicar las actualizaciones con claridad, manteniendo la compatibilidad entre versiones de la app. Por ejemplo, pasar de 1.2.3 a 2.0.0 indica actualizaciones mayores y de ruptura que requieren una planificación cuidadosa.
Cuándo actualizar los números de versión
Así es como puedes decidir qué número de versión actualizar:
| Update Type | Cuándo usarlo | Ejemplo de cambio de versión |
|---|---|---|
| Actualización mayor | Para cambios de ruptura en API o rediseños importantes de la interfaz | 1.2.3 → 2.0.0 |
| Actualización menor | Al introducir nuevas funciones o marcar funciones como obsoletas | 1.2.3 → 1.3.0 |
| Actualización de parche | Para corregir bugs o pequeños ajustes de rendimiento | 1.2.3 → 1.2.4 |
“Practicamos desarrollo ágil y @Capgo es fundamental para hacer entregas continuas a nuestros usuarios.” - Rodrigo Mantica [1]
Ahora veamos cómo automatizar estas actualizaciones para simplificar la gestión de releases.
Automatización de actualizaciones de versión
Automatizar las actualizaciones de versión puede ahorrar tiempo y reducir errores en tu proyecto Capacitor. Así es como se configura:
- Scripts de versión de NPM
Añade estos scripts a tu package.json file to manage version updates easily:
{
"scripts": {
"version:patch": "npm version patch",
"version:minor": "npm version minor",
"version:major": "npm version major"
}
}
- Integración CI/CD
Integra las actualizaciones de versión en tu pipeline de CI/CD. Capgo es compatible con herramientas como Acciones de GitHub, GitLab CI, y Jenkins, facilitando la automatización del proceso.
“@Capgo es una herramienta imprescindible para los desarrolladores que buscan productividad evitando largas revisiones de bugfixes.” - Bessie Cooper [1]
Métodos de etiquetado de versiones
Tags de versión de Git
Los tags de versión de Git son una forma fiable de hacer seguimiento de los lanzamientos de apps de Capacitor. Para crear tags claros e informativos, combina semantic versioning con una breve descripción:
git tag -a v1.2.3 -m "Release v1.2.3: Added offline mode support"
Para mantener la consistencia en tu equipo, usa un formato de tagging estandarizado:
| Componente del tag | Formato | Ejemplo |
|---|---|---|
| Versión de release | v[MAYOR].[MENOR].[PARCHE] | v1.2.3 |
| Release beta | v[VERSION]-beta.[NUMBER] | v1.2.3-beta.1 |
| Candidato a release | v[VERSION]-rc.[NUMBER] | v1.2.3-rc.2 |
Integración del número de build
Los números de build ayudan a rastrear cada build individual dentro de una versión. Tanto en iOS como en Android, incrementa el build number con cada envío:
{
"ios": {
"version": "1.2.3",
"build": "10234"
},
"android": {
"version": "1.2.3",
"versionCode": "10234"
}
}
El número de build siempre debe aumentar, aunque la versión sea la misma. Esto garantiza que cada envío a la app store se identifique de forma única, manteniendo el versionado claro para los usuarios.
Gestión de versiones beta
Gestionar versiones beta requiere un proceso estructurado para distribuir builds de prueba. Capgo sistema de canales lo simplifica con los siguientes pasos:
- Configuración de channels
Crea channels separados para cada fase de testing:
{
"beta": {
"version": "1.3.0-beta.1",
"users": "beta-testers"
},
"production": {
"version": "1.2.3",
"users": "all"
}
}
- Control de acceso de usuarios
Configura permisos para controlar quién accede a las versiones beta. Esto garantiza que solo los testers aprobados reciban builds beta, mientras que los usuarios de producción reciben releases estables.
- Progresión de versiones
Usa un sistema claro de progresión de versiones para seguir las etapas de desarrollo:
| Etapa | Formato de versión | Propósito |
|---|---|---|
| Alpha | 1.3.0-alpha.1 | Pruebas internas |
| Beta | 1.3.0-beta.1 | Grupo de testing externo |
| RC (Release Candidate) | 1.3.0-rc.1 | Testing final antes del release |
| Producción | 1.3.0 | Release público |
Este enfoque garantiza pruebas exhaustivas y transiciones fluidas entre etapas de desarrollo, manteniendo un seguimiento de versiones organizado y transparente en todo el proceso.
Visualización de la versión de la app
Mostrar información de versión precisa en tu app es clave para mantener informados a los usuarios y gestionar las actualizaciones con eficacia.
Obtener la versión con Capacitor
Puedes recuperar los detalles de la versión usando Capacitor con este code:
import { App } from '@capacitor/app';
async function getAppInfo() {
const info = await App.getInfo();
console.log(`Version: ${info.version}`);
console.log(`Build: ${info.build}`);
}
Para un enfoque más ágil, crea una función reutilizable:
export const getVersionString = async () => {
const info = await App.getInfo();
return `v${info.version} (${info.build})`;
};
Esta función simplifica el proceso de mostrar la información de versión en la interfaz de tu app.
Implementación de la UI de versión
Aquí tienes un ejemplo de cómo integrar la visualización de la versión en un componente de ajustes:
@Component({
selector: 'app-settings',
template: `
<div class="version-info">
<span>Version: {{ versionString }}</span>
<span *ngIf="updateAvailable" class="update-badge">
Update Available
</span>
</div>
`
})
Lugares habituales para mostrar los detalles de la versión:
| Ubicación | Propósito | Implementación |
|---|---|---|
| Pantalla de Ajustes | Versión y build completos | Información detallada de la versión |
| Página Acerca de | Visualización básica de la versión | Solo el número de versión |
| Footer de la App | Visualización mínima | Cadena de versión condensada |
Además de mostrar información de versión, integrar un sistema de verificación de actualizaciones puede mejorar la experiencia del usuario.
Sistema de verificación de actualizaciones
Un sistema de verificación de actualizaciones garantiza que los usuarios tengan acceso a las últimas funciones y correcciones. Capgo ofrece notificaciones en tiempo real y canales de actualización controlados para gestionar este proceso:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
async function checkForUpdates() {
const current = await CapacitorUpdater.current();
const latest = await CapacitorUpdater.getLatest();
if (current.version !== latest.version) {
await CapacitorUpdater.download({
version: latest.version
});
}
}
“Practicamos desarrollo ágil y @Capgo es fundamental para hacer entregas continuas a nuestros usuarios.” - Rodrigo Mantica [1]
También puedes añadir una notificación de actualización para el usuario, como esta:
@Component({
template: `
<update-modal
[version]="newVersion"
[features]="updateFeatures"
(updateNow)="performUpdate()"
/>
`
})
Para apps empresariales, el sistema de canales de Capgo te permite controlar la distribución de actualizaciones:
| Canal | Update Type | Público objetivo |
|---|---|---|
| Producción | Releases estables | All users |
| Beta | Versiones pre-release | Grupo de prueba |
| Crítico | Hotfixes de emergencia | Usuarios afectados |
Este método garantiza la fiabilidad de la app mientras monitorizas el rendimiento de las actualizaciones mediante el dashboard de analytics de Capgo.
Soluciones de gestión de versiones
Exploremos soluciones avanzadas para gestionar las versiones de tu app de forma eficaz.
Opciones de herramientas de versionado
Al elegir herramientas de control de versiones, es clave centrarse en aquellas que simplifiquen las actualizaciones, protejan tu code y soporten tanto lanzamientos en tiendas como Live Updates.
Estas son algunas características clave a tener en cuenta:
| Característica | Importancia | Impacto |
|---|---|---|
| Live Updates | Crítico | Minimiza los retrasos por las revisiones de las tiendas de apps |
| Seguridad | Esencial | Protege los datos del usuario y la integridad de code |
| Analíticas | Importante | Measures update success and user adoption |
| Integración CI/CD | Útil | Optimiza los procesos de despliegue |
| Eficiencia de costos | Estratégico | Influences long-term budget planning |
Una herramienta destacada en este sector es Capgo, que ofrece funciones diseñadas específicamente para apps de Capacitor.
Capgo Funciones de control de versiones

Capgo ofrece potentes capacidades de gestión de versiones, como:
- 23.5M de actualizaciones exitosas entregadas
- 95% de los usuarios actualizados en 24 horas
- tasa de éxito global del 82%
- 434ms de tiempo de respuesta promedio de API en todo el mundo
Aquí tienes un ejemplo de cómo usar Capgo para el control de versiones:
// Capgo version control example
import { CapacitorUpdater } from '@capgo/capacitor-updater';
const versionControl = {
async checkVersion() {
const current = await CapacitorUpdater.current();
return current.version;
},
async deployUpdate(version: string) {
await CapacitorUpdater.setChannel({
channel: 'production',
version: version
});
}
};
“Estamos probando @Capgo ya que Appcenter dejó de dar soporte a live updates en apps híbridas y @AppFlow es demasiado caro.” - Simon Flack [1]
Soluciones por tamaño de equipo
Capgo ofrece planes flexibles para equipos de cualquier tamaño, logrando que la gestión de versiones sea escalable y eficiente.
| Tamaño del equipo | Plan | Funciones clave |
|---|---|---|
| Desarrollador individual | Hosting básico en la nube | Live updates, 1.000 MAU |
| Equipo pequeño (2-5) | Plan Maker | 10.000 MAU, 500GB de ancho de banda |
| Equipo mediano (6-20) | Plan Team | 100.000 MAU, permisos |
| Enterprise | PAYG personalizado | MAU ilimitados, soporte dedicado |
Para equipos más grandes, el sistema de canales de Capgo permite un control preciso del despliegue de versiones:
const enterpriseVersionControl = {
channels: {
production: 'stable-releases',
beta: 'early-access',
internal: 'development'
},
async deployToChannel(channel: string, version: string) {
await CapacitorUpdater.setChannel({
channel: channel,
version: version
});
}
};
“Practicamos desarrollo ágil y @Capgo es fundamental para hacer entregas continuas a nuestros usuarios.” - Rodrigo Mantica [1]
Capgo también incluye un dashboard de analytics para monitorear las tasas de adopción de versiones y detectar posibles problemas a tiempo. Con cifrado integrado y opciones de hosting personalizables, los equipos pueden mantener la seguridad mientras escalan sus workflows de despliegue.
Conclusión
Entender el versionado por etiquetas es clave para simplificar el desarrollo y el despliegue. Aquí tienes un resumen de las ideas principales y los pasos para empezar.
Puntos clave
El etiquetado de versiones ayuda a los desarrolladores a mantener actualizaciones fluidas y fiables. Un control de versiones adecuado ofrece claras ventajas:
| Beneficio | Impacto | Resultado |
|---|---|---|
| Actualizaciones instantáneas | Tiempos de revisión más cortos | Adopción más rápida por parte de los usuarios [1] |
| Control de versiones | Mejor gestión de code | Mayores tasas de éxito [1] |
| Seguimiento de actualizaciones | Monitoreo en tiempo real | Resolución más rápida de problemas [1] |
| Control de distribución | Despliegues segmentados | Soporte multiplataforma |
Estos resultados destacan la importancia de utilizar herramientas eficaces de gestión de versiones.
Cómo empezar
Para poner en práctica estos beneficios, sigue estos pasos:
- Configura el seguimiento de versiones: Usa versionado semántico en tu
package.jsonarchivo e integra los plugins necesarios. - Añade comprobaciones de actualización: Implementa sistemas para verificar y rastrear las actualizaciones de versión.
- Configura canales de distribución: Crea entornos separados para producción, beta y desarrollo.
Por último, considera añadir un sistema live update para asegurar despliegues rápidos y seguros.
Continuar desde el etiquetado de versiones en las apps de Capacitor
Si estás usando Etiquetado de versiones en apps de Capacitor 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.