Saltar al contenido

Capgo Delta Updates: Publica solo los archivos modificados con --delta

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

Esto es especialmente beneficioso para usuarios con conexiones de red lentas o con datos limitados, ya que minimiza la cantidad de datos que deben descargarse.

Un segundo beneficio es cuando la app tiene assets grandes que cambian rara vez, como imágenes o vídeos; a diferencia de los archivos JS comprimidos, solo se descargan una vez.

Cómo funcionan los Delta Updates

Section titled “How Delta Updates Work”

Las actualizaciones delta en Capgo se gestionan mediante el plugin Capgo instalado en tu app. Cuando subes una nueva versión de tu app usando la --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 que ejecuta tu app comprueba si hay una actualización, el plugin Capgo recibe la lista de archivos delta del nuevo bundle. La compara con los archivos que ya tiene e identifica qué archivos han cambiado según los checksums y las rutas.

El plugin descarga después solo los archivos modificados, en lugar de todo el bundle JS. Reconstruye la nueva versión de la app combinando esos archivos descargados con los que no han cambiado y ya tiene.

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 incluye tanto un zip completo como archivos delta. En un canal con la configuración Zip + delta , cada dispositivo recibe el mejor paquete que soporta:

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

Por lo tanto, es normal seguir viendo descargas de zips completos después de habilitar Delta. Provienen de dispositivos que aún ejecutan una versión nativa anterior con una versión antigua del plugin. Desaparecen a medida que los usuarios actualizan la app desde la tienda.

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

Las actualizaciones Delta también reducen tu uso de ancho de banda en Capgo. El ancho de banda solo cuenta los archivos que un dispositivo descarga realmente, por lo que con Delta solo se cuentan los archivos modificados, no el bundle completo. Los archivos o zips completos ya cacheados en el borde no cuentan, y las descargas interrumpidas se reanudan donde se detuvieron sin contar la parte descargada dos veces. Ver ¿Cómo se calcula el ancho de banda?.

Para habilitar actualizaciones Delta en tu app de Capgo, simplemente usa la --delta bandera al subir una nueva versión:

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

Si autoUpdate se establece en modo de aplicación instantánea ("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 los archivos de cero bytes de los archivos delta. No hace que la carga falle, por lo que añadir un archivo vacío puede cambiar el bundle resultante sin detener tu despliegue. No incluyas archivos de cero bytes en las rutas de los bundles Delta.
  • Espacios en las rutas: Las cargas Delta fallan antes de subir los archivos si la ruta del bundle contiene un espacio. Renombra el archivo o directorio para eliminar los espacios antes de subir una actualización Delta.

Si quieres asegurarte de que todas las cargas son actualizaciones Delta y evitar cargas accidentales de bundles completos, puedes usar la --delta-only bandera:

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

Cuando --delta-only se utiliza, Capgo solo subirá los archivos delta, sin un zip completo. Cualquier dispositivo con una versión del plugin sin soporte para Delta no podrá descargar la actualización.

Quizás quieras usar --delta-only si:

  • Siempre quieres usar actualizaciones Delta y nunca permitir subidas de bundle completo
  • Estás configurando un pipeline de CI/CD y quieres asegurarte de que todas las subidas automatizadas sean Delta
  • Tu app es grande y el ancho de banda es limitado, así que necesitas minimizar los tamaños de subida/descarga

Si necesitas hacer una subida de bundle completo mientras --delta-only está configurado, simplemente ejecuta el comando de subida sin --delta-only. Esto anulará la configuración para esa única subida, permitiéndote enviar un bundle completo cuando sea necesario.

Si las actualizaciones Delta no parecen funcionar (es decir, los dispositivos siempre descargan el bundle JS completo incluso para cambios pequeños), vuelve a comprobar que:

  • Estás usando la --delta flag 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 el último bundle
  5. Consulta la Delta files fila. Muestra Sin archivos delta cuando el bundle se subió solo como un zip completo. tipo de bundle

Si sigues teniendo problemas, ponte en contacto con el soporte de Capgo para obtener más ayuda. Pueden revisar los logs del servidor para confirmar que tus subidas de Delta se están procesando correctamente y que los dispositivos están recibiendo 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 usar --delta cada vez que subas una nueva versión que quieras entregar como actualización Delta. Si omites la bandera, Capgo subirá todo el bundle 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.