Saltar al contenido principal

Etiquetado de versiones en apps de Capacitor

Aprende lo esencial del etiquetado de versiones en apps de Capacitor, incluyendo buenas prácticas para actualizaciones, sincronización y automatización.

Etiquetado de versiones en apps de Capacitor Capgo ilustración del blog

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, iOS Info.plist, y Android build.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 ⚡️

Sitio web de documentación de Capacitor Framework

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:

  1. 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"
  }
}
  1. 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:

  1. 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"
  }
}
  1. 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.

  1. 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

Interfaz del dashboard de Capgo Live Update

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.json archivo 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.

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.