Saltar al contenido principal

Cómo actualizar archivos en apps de Capacitor

Aprende a actualizar archivos en apps de Capacitor al instante con live updates. Evita los retrasos de la App Store y envía correcciones de JS, CSS y assets directamente a los usuarios.

Cómo actualizar archivos en apps de Capacitor

Lanza Capacitor fixes sin los retrasos de la App Store

Imagina que tu checkout tiene un error de alineación CSS a las 8 AM. Empieza el pánico: necesitas un release para iOS, otro para Android, Native Builds y días de revisión. Ya no más.

Crea un nuevo web bundle, súbelo a un canal de Capgo controlado y los dispositivos compatibles lo descargarán sin pasar por la cola de revisión de la App Store. Los fixes de CSS, JavaScript, copy y assets llegan a los usuarios en minutos, mientras que los cambios nativos siguen la ruta habitual de release binario.

Table of Contents

Cuándo tiene sentido un Live Update

Un live update funciona cuando tu shell nativo está bien pero la capa web necesita atención. ¿Ese error de alineación en el CSS? Corrige la hoja de estilos, reconstruye los assets web y publica un bundle firmado. Para las 9 AM —una hora después de que apareciera el bug— tus usuarios ya reciben el fix en su próximo inicio de la app. Capgo aplica el bundle mediante su updater sin tocar el binario nativo.

Un joven profesional con gafas trabajando en un portátil sobre un escritorio de madera con un teléfono móvil.

Así es como decido qué ruta tomar:

  • Usa un live update para comportamiento de JavaScript, CSS, texto, configuración y assets compatibles.
  • Usa un release nativo para cambios en plugins, permisos, dependencias nativas o funcionalidad a nivel de OS.
  • Prueba mediante un channel antes de lanzar una corrección a todos tus clientes.
Tipo de Release Uso típico User Impact
Paquete nativo Nueva capacidad nativa Descarga y revisión en Store
Bundle web en vivo Fix urgente compatible Actualización al iniciar la app

Mantén compatibles las capas nativa y web. Un bundle en vivo no puede introducir de forma segura APIs nativas que el binario instalado no contenga. Si añades un nuevo plugin o cambias permisos, necesitarás un Native Build; no hay otra forma.

Para una secuencia de despliegue paso a paso, te recomiendo leer esta guía para desplegar hotfixes de Capgo. Explica cómo pasar de una corrección probada a un lanzamiento controlado sin usar a los usuarios de producción como tu equipo de QA.

Antes de empezar a subir actualizaciones a producción, asegúrate de tener tus builds locales bajo control. Instala Capgo’s open-source updater plugin, then add its TypeScript package so your editor actually recognizes the updater methods instead of throwing missing type errors. For Capacitor projects, their Su guía para configurar un entorno local de Capacitor merece la pena guardarla en marcadores: te enseña cómo preparar un workspace limpio.

Un portátil moderno sobre un escritorio mostrando un proceso de software build completado con una lista de tareas al lado.

Mantén los Web Assets predecibles

Tu bundle en vivo solo contiene los web assets compilados, no archivos fuente arbitrarios que puedas editar. Configura tu proyecto para que el comando de build siempre genere el JavaScript, CSS, HTML y assets compatibles en el mismo www o public directorio que referencia el native shell.

Así es como funciona en la práctica: tras cambiar un stylesheet, ejecuta tu web build habitual, inspecciona el directorio de salida y confirma que los archivos generados reemplazaron las versiones anteriores. No edites archivos compilados manualmente: el siguiente build los sobrescribirá sin avisar y perderás los cambios sin darte cuenta.

Un live update solo puede entregar lo que incluya tu web build. Si la corrección no está en www o public, el dispositivo simplemente no podrá recibirla.

Configura canales separados para development, staging y production. Un build de desarrollo nunca debe apuntar al canal de production, especialmente si varios miembros del equipo prueban bundles incompletos a la vez.

  • Desarrollo detecta imports rotos y assets faltantes antes de que avancen.
  • Staging verifica el comportamiento en dispositivos reales con ajustes de release.
  • Producción sirve solo bundles aprobados y testeados — nada experimental.

Verifica el Bundle antes de publicar

Ejecuta una breve comprobación de integridad antes de subir cualquier cosa. Esto detecta la mayoría de los problemas que, de otro modo, llegarían a los usuarios:

  1. Borra el output del build anterior y luego crea uno nuevo.
  2. Confirma que el archivo corregido realmente existe en el directorio de salida.
  3. Prueba la navegación, el login, el modo offline y las llamadas a plugins nativos, no solo la función modificada.
  4. Instala el bundle en dispositivos de prueba tanto en iOS como en Android.
  5. Registra el channel y la versión del bundle usados en el test para poder reproducir errores después.

Los equipos de Electron pueden aplicar la misma disciplina: build de los assets del renderer por separado y confirmar que la app empaquetada referencia al directorio de salida correcto. Las APIs tipadas y los controles de channel de Capgo facilitan la repetición de este workflow, pero no sustituyen las pruebas de compatibilidad. Si un cambio requiere un nuevo plugin nativo o permiso, publica un nuevo binario en lugar de intentar enviarlo como un live web bundle; el updater no puede modificar el code nativo por sí solo.

Lograr actualizaciones de archivos correctas en Capacitor y apps de Electron depende de una cosa: un release artifact sólido. Haz el build de tu capa web desde el commit exacto que ya probaste, y luego verifica que todo tu JavaScript, CSS, HTML y assets estén en www o public como se espera. Si trabajas con Electron, haz el build del renderer por separado y verifica que el shell empaquetado apunte a ese output.

Crear un Bundle Verificable

Antes de siquiera pensar en subir nada, elimina cualquier salida de build antigua y ejecuta tu build de producción desde cero. Anota el hash del commit, la versión del bundle, el canal de destino y la versión de la app nativa. Estos detalles te ahorrarán horas de quebraderos de cabeza cuando algo no cuadre más adelante.

Prueba siempre el bundle en dispositivos reales: iPhones, móviles Android o instalaciones de Electron. Recorre el login, la navegación, el modo offline y cada plugin nativo que toque los archivos que acabas de actualizar. Que subirlo correctamente a tu servidor de actualizaciones no significa nada si el dispositivo no puede ejecutar lo que enviaste.

La firma le da a tu artefacto una huella criptográfica. El actualizador se basa en esa firma para confirmar que el bundle pasó por tu pipeline de release sin alteraciones. Guarda tus credenciales de firma completamente fuera del repo, restringe quién puede acceder a ellas y rótalas con la frecuencia que exija tu política de seguridad.

Un bundle firmado no sustituye a las pruebas. La firma demuestra de dónde viene el artefacto y que no ha sido manipulado, pero no dice nada sobre si tu app funcionará realmente con él.

Si quieres tener el panorama completo, te recomiendo leer la guía de Capgo sobre seguridad end-to-end y code signing.

Publicación mediante canales controlados

Cuando tu bundle firmado esté listo, súbelo a Capgo y asígnalo a un canal que encaje con tu estrategia de rollout. Los que más usarás:

  • Beta — para el equipo interno y testers seleccionados
  • Staging — para validar en un entorno similar a producción antes de que los usuarios reales lo vean
  • Producción — para la audiencia aprobada
  • Canales específicos por cliente — cuando distintos tenants necesitan su propio timing de actualización independiente

Este es un escenario muy común: un equipo de fintech detecta un error en una etiqueta de pago en producción. Publican el web bundle corregido en un canal interno, verifican el checkout en varios dispositivos y luego promocionan ese mismo artefacto probado a un pequeño segmento de producción antes de un despliegue masivo. Esos guardrails de canal evitan que un fix apresurado se convierta en un incidente grave.

Tras publicar, analiza los logs por dispositivo en lugar de confiar solo en el estado agregado del dashboard. Querrás confirmar que la versión correcta de la app recibió el bundle, que la firma se validó, que la instalación terminó correctamente y que el siguiente arranque cargó realmente los nuevos archivos.

Si algún dispositivo reporta discrepancias, pausa ese canal de inmediato y compara lado a lado la versión del bundle, la compatibilidad nativa, la clave de firma y la asignación de canal. Amplía la distribución solo cuando los logs se vean limpios en tu grupo de prueba y mantén siempre el bundle anterior disponible para un rollback.

Una vez que tus builds locales funcionen sin problemas, es hora de integrar la publicación en tu pipeline de CI/CD. El objetivo es sencillo: compilar tus assets web, firmar el bundle y publicarlo automáticamente cuando pasen los tests. Se acabaron las subidas manuales. Se acabaron las dudas sobre cómo actualizar archivos tras un merge: el proceso se encarga de todo.

Así es como se ve un pipeline práctico en la realidad:

  • Dispara el job cuando una rama de release se fusione con tu rama de destino.
  • Instala las dependencias y genera un www o public build limpio.
  • Ejecuta tu suite de tests completa: unitarios, de integración y smoke tests en dispositivos.
  • Firma el bundle usando las credenciales guardadas en tu gestor de secretos de CI.
  • Súbelo a un canal de beta o staging mediante el API público de Capgo.
  • Tras pasar las validaciones, promociona ese mismo artefacto. No lo vuelvas a buildear.

Algo que vale la pena repetir: nunca hagas commit de llaves de firma o tokens de API en tu repo. Guárdalos como variables de entorno protegidas, restringe el publishing de producción solo a ramas aprobadas y registra cada release con la versión del bundle, el commit hash, la versión de la app nativa y el canal de destino. La guía de Capgo sobre la integración de GitHub Actions te explica cómo configurar esto de principio a fin.

Una infografía de cuatro pasos que ilustra el proceso de build, signing, publicación y validación de web bundles para su distribución.

La conclusión principal es que la validación sigue siendo parte del proceso de entrega. El publishing no es la meta final. Tu pipeline debe confirmar que los dispositivos de destino realmente recibieron y aceptaron el bundle.

Reduce costes de transferencia con Differential Updates

Enviar bundles completos cada vez es un desperdicio, especialmente si un release solo cambia una hoja de estilos o un par de módulos de JavaScript. Activa la entrega diferencial para que los dispositivos descarguen solo los archivos modificados. Solo asegúrate de probar cómo se gestionan los assets eliminados o renombrados, o te llevarás una sorpresa desagradable en producción.

Una agencia que conozco logró reducir sus costes medios de ancho de banda en un 47% tras pasar de re-bundles completos a la entrega incremental. La verdadera ventaja fue para los usuarios con conexiones lentas, donde las descargas más pequeñas también significaron tiempos de instalación notablemente más rápidos.

También recomiendo usar canales separados para controlar tu exposición:

  • Beta toma builds internas y recopila el feedback de los testers.
  • Staging refleja la configuración de producción sin afectar a los clientes.
  • Producción comienza poco a poco con una audiencia limitada antes de escalar.
  • Canales de clientes mantienen las releases de cada tenant aisladas entre sí.

Promociona un artefacto probado; no lo reconstruyas entre etapas. Reconstruir para cada entorno introduce drift, y de repente estarás debugueando diferencias que no deberían existir.

Para una app fintech, el flujo podría ser así: publica primero para empleados, luego lanza al 5% de usuarios elegibles, inspecciona los logs por dispositivo y expande solo cuando la adopción sea estable y la tasa de fallos no suba. Y siempre guarda el bundle anterior. Si algo falla, necesitas poder pausar o hacer rollback en minutos, no en horas.

Publicar un bundle es solo la mitad del proceso. Para confirmar que los usuarios realmente reciben la actualización, abre los logs por dispositivo de Capgo y verifica la versión nativa, el channel, la versión del bundle, la validación de firma, el estado de descarga y el resultado de la instalación.

Un rollout saludable debe mostrar lanzamientos exitosos tras la instalación, no solo descargas completadas. Para un fix en el checkout, prueba un flujo de compra real en varios dispositivos y luego compara esos resultados con los reportes de usuarios en conexiones lentas o versiones antiguas de la app.

Un hombre sentado en un escritorio mirando un monitor que muestra analíticas y logs de gestión de dispositivos.

Lee las señales de Update con claridad

Combina métricas de adopción y de fallos. Una alta tasa de descarga con fallos de lanzamiento recurrentes indica un bundle corrupto, mientras que una baja adopción puede deberse al targeting del canal, dispositivos offline o errores en la configuración del updater.

Señal Qué significa habitualmente
Descargado El dispositivo recuperó el bundle
Instalado Los archivos pasaron los checks de instalación
Lanzado con éxito La app se abrió con los nuevos archivos
Rollback realizado Se restauró el último bundle estable

Mide los lanzamientos exitosos, no solo las descargas. Una actualización es operativa solo cuando los usuarios pueden abrir y usar la app normalmente.

La protección de rollback automático de Capgo ofrece una red de seguridad si un nuevo bundle provoca crashes o impide el arranque. Mantén disponible la versión anterior, pausa el canal afectado e investiga los logs antes de promocionar otro artefacto.

El control de versiones de video comparte base conceptual con el monitoreo de actualizaciones de archivos y la gestión de rollbacks en pipelines de distribución en vivo, por lo que los equipos también pueden encontrar útiles estas ideas cuando gestionan versiones de videos de formación.

Verificar el release

Usa esta breve checklist post-release:

  • Confirma la adopción por canal y versión de la app.
  • Revisa fallos de descarga, errores de firma y fallos de inicio.
  • Prueba el workflow modificado en dispositivos físicos.
  • Compara el timing de errores con el timestamp del release.
  • Pausa la distribución si los fallos aumentan inesperadamente.
  • Registra el bundle final, el commit y la decisión de rollback.

Para profundizar, lee cómo monitorizar actualizaciones OTA en apps con Capacitor. Esto convierte la actualización de archivos de una tarea de publicación en un proceso operativo controlado.

Do Live Updates Follow Store Rules?

Los Live Updates funcionan mejor para cambios en JavaScript, CSS, textos, ajustes de configuración y assets compatibles. No son una puerta trasera para añadir capacidades nativas, cambiar permisos o saltarse la revisión de la tienda. Consulta siempre las políticas de Apple y Google para tu categoría de app antes de publicar nada.

¿Cómo reducen las actualizaciones diferenciales las descargas?

La entrega diferencial envía solo los archivos que realmente han cambiado en lugar de todo el bundle web. Si modificas una hoja de estilos en tu página de checkout, no hay necesidad de retransmitir todos los demás assets. Eso significa transferencias más rápidas y menos consumo de ancho de banda.

No obstante, presta atención a los archivos renombrados o eliminados. Los assets obsoletos de versiones anteriores pueden generar bugs extraños y difíciles de rastrear.

Los parches pequeños aún requieren pruebas de compatibilidad completas. Una descarga más pequeña no elimina la necesidad de verificar todo el flujo de usuario.

¿Qué pasa cuando un dispositivo está offline?

Un dispositivo offline seguirá ejecutando el bundle que tenga instalado. En cuanto recupere la conexión, el updater revisará el canal asignado y descargará la última versión compatible. No asumas que todos los dispositivos se actualizan al instante; los equipos en campo con conexión intermitente podrían quedarse atrás un tiempo.

¿Cómo gestionar los breaking changes?

Piensa en el binario nativo y el web bundle como un par inseparable. Si tus archivos web actualizados llaman a un método nativo que no existe en el binario instalado, primero debes lanzar una nueva versión nativa y luego aplicar la actualización web encima.

Usa canales separados para beta, staging y producción. Verifica que cada dispositivo esté recibiendo el canal que esperas. Cuando aparecen discrepancias de firma, suelen deberse a artefactos alterados, credenciales incorrectas o problemas de configuración. Pausa la distribución, compara lo publicado con lo que probaste y revisa a fondo los logs del dispositivo antes de volver a intentarlo.

Para un flujo de despliegue práctico, explora Capgo — te ofrece releases firmados, control de canales, entrega diferencial y protección contra rollbacks para que actualices archivos sin complicaciones.

Live Updates para apps de Capacitor

Si hay un bug en la capa web, publica el fix con 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 proceso de revisión normal.

Lo último de nuestro blog

Capgo te da los mejores insights para crear una app móvil realmente profesional.