Saltar al contenido principal
Actualizaciones directas

Muestra la última versión al abrir tu app

Por defecto, un live update se ejecuta tras la descarga. Los modos de direct update lo aplican al inicio, tras el splash screen, para que la primera pantalla sea ya la nueva versión.

autoUpdate: atInstall, onLaunch o siempre
La splash screen se mantiene hasta que la actualización esté lista
Las descargas delta reducen la espera al mínimo

El problema

Las actualizaciones en segundo plano llegan una sesión tarde

Qué sucede en el modo por defecto

1

El usuario abre la app

La app arranca con el bundle que ya tiene. El updater busca uno nuevo y lo descarga en segundo plano.

2

La sesión ejecuta la versión actual

Durante el resto de esa sesión, el usuario ejecuta el code que se instaló antes de tu fix.

3

La actualización se aplica al reanudar

Cuando el usuario sale de la app, el updater instala el nuevo bundle. Lo verá la próxima vez que abra la app.

Para la mayoría de los releases, ese es el trade-off correcto. Cuando la sesión que empieza después de tu upload deba ejecutar el nuevo code, usa un modo direct update.

Cuando la primera sesión es crítica

Un flujo de login o pago roto

Los usuarios que abran la app no deberían volver a ver la pantalla rota antes de que se aplique el fix.

Un fix de seguridad en la capa web

Quieres que el JavaScript parcheado se ejecute desde el arranque, no desde la siguiente sesión.

Un cambio con fecha

Términos, avisos o contenido de eventos que debe estar actualizado en la primera pantalla que ven los usuarios.

La solución

Qué cambia con el modo de actualización directa

El updater comprueba al arrancar mientras la splash screen sigue visible. Si hay un nuevo bundle, lo descarga y lo aplica antes de que la splash screen se oculte.

Modo por defecto (atBackground)

1
El usuario abre la app
2
La app muestra la versión actual
3
La actualización se descarga en segundo plano
4
La actualización se aplica al reanudar

Sin esperas al iniciar. Los usuarios ven la actualización en la siguiente sesión.

Modo directo (onLaunch)

1
El usuario abre la app y la splash screen permanece visible
2
El updater verifica y descarga los archivos modificados
3
Se aplica la actualización, se oculta la splash y aparece la nueva versión

Los usuarios ven la nueva versión en la primera pantalla. Esperan en la splash screen mientras se descarga.

Docs de comportamiento de las actualizaciones

Cómo funciona

Cómo configurar las actualizaciones directas

El modo directo es configuración nativa, así que primero se incluye en un build de tienda. A partir de ahí, cada live update lo sigue. Los comandos salen de la documentación de Capgo.

  1. Añade el plugin de splash screen y elige un modo

    Instala @capacitor/splash-screen, luego configura autoUpdate, autoSplashscreen y launchAutoHide en capacitor.config.ts.

    npm install @capacitor/splash-screen
    npx cap sync
    
    // capacitor.config.ts
    plugins: {
      CapacitorUpdater: {
        autoUpdate: 'onLaunch', // or 'atInstall' / 'always'
        autoSplashscreen: true,
        keepUrlPathAfterReload: true,
      },
      SplashScreen: { launchAutoHide: false },
    }
    Gestión de splash screen
  2. Publica la config en un build de tienda

    capacitor.config se compila en la app nativa, así que el nuevo modo llega a los usuarios con tu próximo release en la tienda. Capgo Build puede generarlo en la nube.

    npx @capgo/cli@latest build request --platform ios
    npx @capgo/cli@latest build request --platform android
    Docs de Capgo Build
  3. Sube bundles como deltas

    Los usuarios esperan la descarga al iniciar, así que envía solo los archivos modificados. CLI detecta modos de aplicación instantánea y te pide subir un delta.

    npx @capgo/cli@latest bundle upload --channel production --delta
    Docs de delta updates
  4. Mantén el rollback automático activo

    Llama a notifyAppReady() una vez que tu app haya iniciado. Si un nuevo bundle falla al arrancar, el dispositivo vuelve al último que funcionaba.

    import { CapacitorUpdater } from '@capgo/capacitor-updater'
    
    await CapacitorUpdater.notifyAppReady()
    Docs de notifyAppReady()

Elige el modo ideal para tu app

Las actualizaciones directas son un intercambio: una breve espera al inicio a cambio de la nueva versión en la primera pantalla.

Tres modos de aplicación instantánea

Configura autoUpdate en capacitor.config.ts. Cada modo decide cuándo puede aplicarse una actualización mientras el usuario espera.

  • atInstall: solo justo después de una instalación limpia o una actualización de la app nativa desde la store
  • onLaunch: cuando la app arranca desde un estado cerrado (cold start)
  • siempre: en cada comprobación en foreground, incluso con la app abierta
Ajustes del updater

3

Modos de aplicación instantánea en autoUpdate

Gestión de splash screen

Los modos directos requieren @capacitor/splash-screen con launchAutoHide en false y autoSplashscreen en true. El updater oculta el splash screen una vez aplicada la actualización o cuando detecta que no hace falta actualizar.

  • No hace falta llamar manualmente a SplashScreen.hide()
  • keepUrlPathAfterReload mantiene al usuario en la misma ruta tras el reload
  • Escucha appReady si necesitas ejecutar tareas tras ocultar el splash
Gestión de splash screen

autoSplashscreen

Requerido para cada modo directo

Trade-offs a tener en cuenta

Los usuarios esperan la descarga al iniciar, pero con una actualización constante pueden recargar la app mientras la usan. Prepárate para ambos casos.

  • Sube con --delta para que solo se descarguen los archivos modificados
  • Guarda y restaura el estado de la app para no perder el progreso del usuario al recargar
  • Mantén el modo por defecto si una sesión de retraso es aceptable
Docs de delta updates

--delta

Recomendado para cada upload de direct update

Cuándo usar direct updates

Usa el modo directo cuando la sesión actual deba ejecutar el nuevo code. Usa el modo por defecto para todo lo demás.

Corrección de bugs críticos

Bugs de pagos, login o datos donde usar el code antiguo una sesión más es inaceptable.

Onboarding de primer uso

atInstall aplica el último bundle justo tras una instalación limpia o actualización de la store, para que los nuevos usuarios inicien con tu onboarding actual.

Contenido desactualizado

Páginas de eventos, avisos o términos que deben estar vigentes cuando los usuarios abren la app.

Parches de seguridad

Correcciones de seguridad en la capa web que deben ejecutarse desde el inicio. Los fixes en el code nativo aún requieren un release en la store.

Releases de rutina

Ajustes de estilo y pequeñas features rara vez justifican esperar al lanzamiento. El modo por defecto las aplica una sesión después.

Apps que permanecen abiertas horas

Con always, las comprobaciones periódicas (cada 10 minutos por defecto) pueden aplicar un update mientras la app está abierta. Guarda el estado antes de usarlo.

Reduciendo la espera al lanzar

La espera al lanzar es la comprobación del update más la descarga. Los delta updates limitan la descarga solo a los archivos que cambiaron.

~50ms

Latencia típica de API

Delta

Solo se descargan los archivos modificados

1B+

Actualizaciones entregadas al mes

Apps creadas con Capacitor

Apps de información pública requieren correcciones urgentes

Apps de emergencia, salud y servicios civiles no pueden esperar días para corregir un checklist, un enlace o un aviso local. Con Direct Updates, la capa web se actualiza en cuanto se aprueba el fix.

Icono de la app de FEMA CLIMA

FEMA

Guías de emergencia donde un error de contenido puede ser crítico.

Instalaciones en Google Play
1.6M
Calificación en la tienda
4.0
Icono de la app Conecte SUS MÉDICO

Conecte SUS

Registros médicos y guías que requieren cambios de texto inmediatos.

Instalaciones en Google Play
27.7M
Calificación en la tienda
4.6
Icono de la app e-Título SOCIAL

e-Título

Flujos de identidad civil donde la guía segura por versión es clave en todo dispositivo.

Instalaciones en Google Play
54.9M
Calificación en la tienda
4.8

Testimonios de clientes

Lo que dicen los equipos que publican con Capgo

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

Kapil

Fundador de NuTriQ

“Poder lanzar actualizaciones OTA a producción al instante, sin esperar los ciclos completos de revisión de la App Store, ha sido una ventaja operativa enorme.”

Retrato de Sergiu S

Sergiu S

Desarrollador principal, drivolino GmbH

“El plugin Capgo Capacitor Updater transformó por completo cómo lanzamos actualizaciones. Lo que antes tardaba días ahora tarda solo minutos.”

Retrato de Luis Dominguez

Luis Dominguez

El que paga, manda

“Desde que empecé a usar Capgo, todo va más rápido y puedo dedicarles a mis usuarios el tiempo que merecen sin descuidar mi día a día.”

FAQ

Preguntas sobre direct updates

Cuándo usarlos, cómo configurarlos y su coste inicial.

¿Deberíamos usar direct updates o el modo background por defecto?

Usa el modo por defecto para la mayoría de los lanzamientos: no hay espera al inicio y los usuarios reciben la actualización en la siguiente sesión. Usa el modo direct cuando la sesión que inicia tras tu upload deba ejecutar el nuevo code, por ejemplo, para arreglar un checkout roto o un fix de seguridad en la capa web.

Docs de comportamiento de las actualizaciones

¿Cuál es la diferencia entre atInstall, onLaunch y always?

atInstall aplica la actualización inmediatamente solo tras una instalación limpia o una actualización de la app nativa en la store, y luego actúa como el modo por defecto. onLaunch se aplica inmediatamente cuando la app arranca desde un estado cerrado. always comprueba en cada foreground y se aplica en cuanto termina la descarga, incluso mientras el usuario está en la app.

Ajustes del updater

¿Por qué es necesario el plugin de splash screen?

Los modos direct aplican la actualización mientras el usuario espera. Sin @capacitor/splash-screen, autoSplashscreen: true y launchAutoHide: false, los usuarios podrían ver un parpadeo o la UI antigua antes del reload. Con ellos, el splash se mantiene visible hasta que la actualización se aplica o el updater confirma que no es necesaria.

Gestión de splash screen

¿Podemos activar direct updates con un live update?

El parámetro autoUpdate reside en capacitor.config, el cual se lee en la app nativa durante el build. Envía la nueva configuración en un release de la tienda. Tras eso, cada live update seguirá el nuevo modo.

Docs de compatibilidad nativa

¿Nuestra config usa directUpdate? ¿Sigue siendo compatible?

directUpdate está deprecated pero aún se detecta. Sus valores coinciden con los modos de autoUpdate: atInstall, onLaunch y always. Cambia la configuración a autoUpdate en tu próximo release nativo.

Ajustes del updater

Lanza tu próximo fix en la primera pantalla

Prueba el modo direct update en un build de prueba durante el trial y mide el tiempo de espera al lanzar tu propia app.

Prueba gratuita de 14 días. Sin tarjeta de crédito.