Saltar al contenido principal

Versionamiento objetivo

Envía cada versión nativa solo los paquetes que puede ejecutar

Los usuarios actualizan desde la tienda a su propio ritmo, por lo que varias versiones nativas de tu aplicación están en vivo al mismo tiempo. Capgo verifica las dependencias nativas de cada paquete, bloquea actualizaciones por reglas de versión y puede enviar cada versión nativa a su propio canal.

Verifique la compatibilidad nativa antes de subir

La compatibilidad de paquetes compara los paquetes nativos en tu proyecto con el paquete en vivo en el canal. Agregue --fail-on-incompatible en CI para detener una subida que necesita un nuevo binario.

Documentación de compatibilidad nativa

Establezca un piso de versión nativa en cada paquete

Ponga el canal en la estrategia de metadatos y suba con --auto-min-update-version. Los dispositivos cuya versión nativa es inferior al piso del paquete lo saltan y mantienen su paquete actual.

Documentación de versiones

Actualiza bloqueos a lo largo de líneas semver

--disable-auto-update major, minor o patch mantiene a un dispositivo de recibir un paquete fuera de su línea de versión nativa. Estas reglas comparan solo números de versión. No inspeccionan code nativo.

Tipos de actualizaciones y bloqueo de versiones

Un canal por versión nativa

Establezca defaultChannel en cada configuración de Capacitor de construcción nativa, por ejemplo v2 o v3. Cada línea obtiene sus propios paquetes, y una línea más antigua puede mantener su último paquete funcionante.

Documentación de versiones

¿Cómo funciona

¿Cómo envían los equipos con varias versiones nativas con Capgo

Una configuración de CI que permite que la rama live update y la rama de la tienda funcionen lado a lado. Cada comando a continuación es de los Capgo CLI docs.

  1. Preguntar si el commit necesita una compilación nativa

    build needed compara sus paquetes nativos con el canal. Imprime sí y sale con code 1 cuando se requiere una actualización de tienda, y no cuando un live update es suficiente.

    npx @capgo/cli@latest build needed com.example.app --channel production
    build needed referencia
  2. Cambiar el canal a la estrategia de metadatos

    Hazlo una vez. A partir de entonces, cada paquete lleva una versión nativa mínima y los dispositivos por debajo de ella saltan el paquete.

    npx @capgo/cli@latest channel set production com.example.app \
      --disable-auto-update metadata
    Documentación de versiones de destino
  3. Subir actualizaciones en vivo todos los días

    Mantener --auto-min-update-version en cada subida. --fail-on-incompatible detiene el trabajo si el paquete necesita una compilación nativa code que el canal no tiene.

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version \
      --fail-on-incompatible
    Documentación de compatibilidad nativa
  4. Subir el paquete para una nueva versión nativa

    Cuando el nuevo binario se envíe, suba su paquete sin --fail-on-incompatible. Capgo eleva el piso para que los edificios antiguos lo omitan, y las comprobaciones posteriores comparan con los nuevos paquetes nativos.

    npx @capgo/cli@latest bundle upload --channel production \
      --auto-min-update-version
    Flujo de trabajo de canal nativo y OTA

Migración de Appflow

¿Viene de Ionic Appflow?

Appflow sincronizaba actualizaciones en vivo con versiones nativas para usted. En Capgo obtiene el mismo resultado con canales y reglas de versión:

  1. Cree un canal para cada línea nativa, por ejemplo v1 y v2.
  2. Establezca defaultChannel en la configuración de Capacitor de cada compilación nativa en su canal.
  3. Suba cada paquete al canal de la línea nativa para la que se construyó.
  4. Keep --auto-min-update-version on uploads so a bundle that needs newer native code skips older builds.
Guía de migración de Appflow
Canales por línea nativa
// capacitor.config.ts in your 2.x native builds
plugins: {
  CapacitorUpdater: {
    defaultChannel: 'v2',
  },
},

# ship a fix to 2.x users only
npx @capgo/cli@latest bundle upload --channel v2 \
  --auto-min-update-version

# 1.x devices stay on their channel's current bundle

Situaciones comunes

Un nuevo plugin nativo

Su binario 2.0 agrega un plugin de cámara. Suba el paquete que lo utiliza con --auto-min-update-version, y los dispositivos 1.x lo saltan hasta que los usuarios instalen 2.0.

Documentación de compatibilidad nativa

Exposición gradual

Envíe un paquete a una fracción de un canal con --rollout, observe la instalación y los datos de falla, luego promueva o róllalo hacia atrás.

Documentación de despliegues progresivos

Retirar una versión antigua

Deténgase la carga en el canal v1. Los dispositivos en él mantienen su última versión funcional mientras que v2 sigue recibiendo actualizaciones.

Documentación de versiones de destino

Cada línea nativa apunta a su propio canal

Un ejemplo de diseño con tres versiones nativas en el mundo.

  • Versión nativa 3.x
    v3
    Nuevos paquetes
  • Native 2.x
    v2
    Sólo correcciones
  • Nativo 1.x
    v1
    No nuevos paquetes

Envía características a v3, correcciones a v2 y nada a v1. Los dispositivos en v1 conservan su último paquete de trabajo.

Aplicaciones construidas con Capacitor

Las aplicaciones públicas deben soportar versiones nativas antiguas y nuevas

Las aplicaciones de ciudadano, salud y pronóstico pueden soportar versiones Android antiguas y diferentes generaciones de dispositivos. La versión de destino mantiene cada compilación nativa en el paquete web más compatible sin forzar un camino de actualización para todos.

Icono de la aplicación e-Título SOCIAL

e-Título

Aplicación de identidad cívica que requiere compatibilidad de dispositivos públicos amplia.

Instalaciones de Google Play
54,9M
Calificación de tienda
4.8
Icono de la aplicación Conecte SUS MEDICAL

Conecte sus

Health app where older and newer native shells may need different web bundles.

Instalaciones de Google Play
27,7M
Calificación de la tienda
4.6
Windy.com - Weather Forecast app icon WEATHER

Windy.com - Pronóstico del tiempo

Weather app where device capability and map performance can vary by version.

Instalaciones de Google Play
32,9M
Calificación de la tienda
4.7

Prueba de clientes

¿Qué equipos que envían con Capgo dicen?

5.0/5 valorado por equipos de desarrolladores 9,400+ equipos Leer reseñas

No tono @ Webincode

Desarrollador, Webincode

Ser capaz de agregar IDs de dispositivo a ciertos grupos y enviar los cambios a solo ciertos grupos es un salvavidas.

Nate van Jole

CTO, Privado

Me tomó menos de un día configurarlo. Los despliegues basados en canales me permitieron probar en mi dispositivo antes de que nada llegue a los usuarios de producción.

Retrato de Sergiu S

Sergiu S

Desarrollador Líder, drivolino GmbH

“El plugin de actualización Capgo Capacitor transformó completamente cómo enviamos actualizaciones. Lo que solía tomar días ahora toma solo minutos.”

FAQ

Preguntas sobre versiones en el mundo

¿Qué pasa con los usuarios que nunca actualizan la aplicación nativa?

¿Qué sucede con los usuarios que nunca actualizan la aplicación nativa?

They keep receiving bundles that are compatible with their native version. With the metadata strategy, a bundle whose minimum native version is above theirs is skipped, and they stay on their current bundle.

Documentación de la versión de destino

¿Es --disable-auto-update suficiente para evitar los errores?

No. Las reglas de versión solo comparan números de versión, por lo que un cambio nativo enviado en una versión menor o de parche todavía se envía. Utilice --fail-on-incompatible o --auto-min-update-version, que verifican sus paquetes nativos.

Documentación de compatibilidad nativa

¿Cómo sabe CI si un cambio necesita una liberación de almacenamiento?

Ejecute buildNeeded o bundleReleaseType contra el canal. Ambos comparan metadatos de paquetes nativos. No ven cada edición bajo ios/, android/ o capacitor.config, por lo que bloquee esas rutas en Git también.

Elige OTA o compilación nativa en CI

Estamos migrando desde Ionic Appflow. ¿Podemos mantener actualizaciones sincronizadas con versiones?

Sí. Utilice un canal por línea nativa con defaultChannel, o la estrategia de metadatos con --auto-min-update-version. La guía de migración de Appflow pasa por la configuración.

Guía de migración de Appflow

¿Qué pasa si un paquete incompatible ya se envió?

Punte el canal hacia la última versión compatible de su historia, o fuerza el paquete de compilación incorporado, y envíe la compilación nativa. notifyAppReady() vuelve a enviar un paquete que falla al iniciar, pero no es un sustituto de paquetes nativos compatibles code.

Documentación de rollbacks

Mantenga cada versión nativa en un paquete que pueda ejecutarse

Configura la estrategia de metadatos y un control de compatibilidad en CI durante la prueba gratuita de 14 días. No se requiere tarjeta de crédito.