Saltar al contenido

Actualizaciones delta

El sistema de Live Update de Capgo permite enviar actualizaciones de forma más rápida y eficiente, enviando solo los archivos modificados en lugar de todo el bundle de JS.

Esto es especialmente útil para usuarios con conexiones lentas o con límites de datos, ya que minimiza la cantidad de información que debe descargarse.

Un segundo beneficio ocurre cuando la app tiene assets pesados que cambian poco, como imágenes o videos; a diferencia de los archivos JS comprimidos, estos se descargarán solo una vez.

Las Delta updates en Capgo las gestiona el plugin Capgo instalado en tu app. Cuando haces el upload de una nueva versión usando el --delta flag, Capgo hace lo siguiente:

  1. Cada archivo de tu build se sube individualmente como un archivo delta
  2. Se generan checksums para cada archivo delta
  3. La lista de archivos delta, con sus rutas y checksums, se guarda en la base de datos de Capgo

Cuando un dispositivo con tu app busca una actualización, el plugin Capgo recibe la lista de archivos delta del nuevo bundle. La compara con los archivos que ya tiene, identificando cuáles han cambiado mediante los checksums y las rutas.

El plugin entonces descarga solo los archivos cambiados, en lugar de todo el bundle JS. Reconstruye la nueva versión de la app combinando estos archivos descargados con los archivos que no han cambiado y que ya posee.

Qué dispositivos reciben Delta y cuáles el zip completo

Sección titulada “Qué dispositivos reciben Delta y cuáles el zip completo”

Un bundle subido con --delta tiene tanto un zip completo como archivos delta. En un canal con el formato de Zip + delta descarga por defecto, cada dispositivo recibe el mejor paquete compatible:

  • Los dispositivos con una versión de plugin que soporta Delta (5.10.0+, 6.25.0+, 7.0.35+, o 8+) descargan solo los archivos delta modificados.
  • Los dispositivos con una versión de plugin antigua sin soporte Delta descargan el zip completo.
  • Los bundles subidos sin --delta no tienen archivos delta, por lo que cada dispositivo descarga el zip completo.

Es normal que sigas viendo algunas descargas de archivos zip completos tras activar Delta. Esto ocurre en dispositivos que aún ejecutan un Native Build antiguo con una versión de plugin obsoleta. Dejarán de verse a medida que los usuarios actualicen la app desde la tienda.

Puedes cambiar esto por canal con el Formato de descarga configuración.

Las actualizaciones Delta también reducen el consumo de ancho de banda de tu Capgo. El ancho de banda solo contabiliza los archivos que el dispositivo descarga realmente; con Delta, solo cuentan los archivos modificados, no el bundle completo. Los archivos o zips ya cacheados en el edge no cuentan, y las descargas interrumpidas se reanudan donde se quedaron sin duplicar el consumo. Consulta ¿Cómo se contabiliza el ancho de banda?.

Para habilitar las actualizaciones Delta en tu app Capgo, simplemente usa el --delta flag al hacer upload de una nueva versión:

Ventana de terminal
npx @capgo/cli@latest bundle upload --delta

Si autoUpdate is set to an instant apply mode ("atInstall", "onLaunch", o "always") en tu capacitor.config, el CLI lo detecta. En entornos no interactivos envía actualizaciones Delta automáticamente, y en entornos interactivos te pide confirmación antes de subir. La configuración directUpdate legacy aún se detecta. Usa --no-delta para forzar la subida de un bundle completo.

  • Archivos vacíos: Los logs de CLI Ignoring empty file... y excluye archivos de cero bytes de los archivos delta. No cancela el upload, por lo que añadir un archivo vacío puede cambiar el bundle resultante sin detener tu deployment. No incluyas archivos de cero bytes en las rutas del Delta bundle.
  • Espacios en las rutas: Los Delta uploads fallan antes de subir los archivos si una ruta del bundle contiene un espacio. Renombra el archivo o directorio para eliminar los espacios antes de hacer el upload de una Delta update.

Si quieres asegurar que todos los uploads sean Delta updates y evitar cualquier upload accidental de un bundle completo, puedes usar el --delta-only flag:

Ventana de terminal
npx @capgo/cli@latest bundle upload --delta-only

Cuando --delta-only si se usa, Capgo solo hará el upload de los archivos delta, sin un zip completo. Cualquier dispositivo con una versión de plugin sin soporte para Delta no podrá descargar la update.

Es posible que quieras usar --delta-only si:

  • Siempre quieres usar Delta updates y nunca permitir la subida de bundles completos
  • Estás configurando un pipeline de CI/CD y quieres asegurar que todas las subidas automáticas sean Delta
  • Tu app es pesada y el ancho de banda es limitado, por lo que necesitas minimizar el tamaño de subidas/descargas

Si necesitas hacer una subida de bundle completo mientras --delta-only está configurado, simplemente ejecuta el comando de upload sin --delta-only. Esto sobrescribirá la configuración para esa subida específica, permitiéndote subir un bundle completo cuando sea necesario.

Si los Delta updates no parecen funcionar (es decir, los dispositivos siempre descargan el bundle JS completo incluso con cambios pequeños), verifica que:

  • Estás usando el flag --delta cada vez que subes una nueva versión
  • Si usas --delta-only, asegúrate de no haber omitido por accidente el --delta flag
  • Tu dispositivo ejecuta una versión del plugin con soporte para Delta (5.10.0+, 6.25.0+, 7.0.35+, o 8+)
  • El formato de descarga del canal no es Solo zip completo
  • Tu dispositivo tiene una conexión de red estable y puede alcanzar los servidores de Capgo

También puedes usar la webapp de Capgo para revisar los detalles de tu último upload:

  1. Ve a la pestaña webapp
  2. Haz clic en tu app
  3. Haz clic en el número de bundles de la barra de estadísticas.
  4. Selecciona la última fila
  5. Consulta la Delta files del bundle. Muestra Sin archivos delta cuando el bundle se subió solo como un zip completo. tipo de bundle

Si sigues teniendo problemas, contacta con el soporte de Capgo para recibir ayuda. Ellos pueden revisar los logs del servidor para confirmar que tus subidas de Delta se procesan correctamente y que los dispositivos reciben los archivos delta.

¡Eso es todo! El --delta flag le indica a Capgo que suba los archivos delta individuales necesarios para las actualizaciones Delta.

Ten en cuenta que debes usarlo --delta cada vez que subas una nueva versión que quieras entregar como una actualización Delta. Si omites el flag, Capgo subirá todo el bundle de JS como un solo archivo, y los dispositivos descargarán el bundle completo aunque solo haya cambiado una pequeña parte.

Si estás usando Actualizaciones delta para planificar la entrega de live update, conéctalo con Live Updates de Capgo para el flujo de trabajo del producto en Capgo Live Updates, Resumen para el detalle de implementación en Overview, Funcionalidades para el detalle de implementación en Features, Comportamiento de actualización para el detalle de implementación en Update Behavior, y Tipos de actualización para el detalle de implementación en Update Types.