Saltar al contenido

Prueba Native Builds sin Live Updates

Al probar un nuevo binario nativo, asegúrate de que arranque desde los web assets incluidos en ese binario, y no desde un live update descargado previamente. Usa una o combina las siguientes medidas de seguridad.

Configura CapacitorUpdater.version de la versión usada en tu release nativo; auméntala con cada Native Build. Una baseline nativa más reciente distingue el binario instalado de bundles antiguos y, por defecto, resetWhenUpdate: trueelimina los bundles descargados al instalar la nueva app nativa.

import type { CapacitorConfig } from '@capacitor/cli';
import pkg from './package.json';
const config: CapacitorConfig = {
plugins: {
CapacitorUpdater: {
// Keep this aligned with, and increase it for, every native build.
version: pkg.version,
autoUpdate: 'atBackground',
},
},
};
export default config;

Por ejemplo, un binario compilado con version: '1.4.1' tiene una native baseline superior a un 1.4.0 bundle existente. No reutilices una versión nativa cuando necesites verificar los assets incluidos en el bundle.

2. Bloquea las actualizaciones de emuladores y development-builds en la consola

Sección titulada “2. Bloquear actualizaciones de emuladores y Native Build en la consola”

Abre tu app en la consola de Capgo, ve a Canales, selecciona el canal que usa el build y abre la Información pestaña. Activar ambos ambos: Permitir build de desarrollo y Permitir emuladores.

Pestaña de información del canal Capgo con los ajustes Allow development build y Allow Emulators
Estos controles están en la pestaña de información del canal. Desactiva ambos ajustes resaltados para que los development builds y emuladores usen sus web assets locales.

Esta política de canal bloquea la entrega de updates solo para los tipos de build seleccionados. Los dispositivos físicos con firma de producción seguirán recibiendo updates según el resto de la configuración.

3. Habilitar Live Updates solo en Native CI Builds

Sección titulada “3. Habilitar Live Updates solo en Native CI Builds”

Para equipos que quieran que los builds locales, de emulador y de desarrollador sean seguros por defecto, haz que los Live Updates sean opt-in mediante una variable de entorno. La config de abajo desactiva los checks de updates a menos que CAPGO_LIVE_UPDATES sea exactamente true:

import type { CapacitorConfig } from '@capacitor/cli';
import pkg from './package.json';
const liveUpdatesEnabled = process.env.CAPGO_LIVE_UPDATES === 'true';
const config: CapacitorConfig = {
appId: 'com.example.app',
appName: 'Example App',
plugins: {
CapacitorUpdater: {
// Bump package.json for every native build.
version: pkg.version,
// Local builds are off; native CI explicitly enables live updates.
autoUpdate: liveUpdatesEnabled ? 'atBackground' : false,
},
},
};
export default config;

Configura la variable solo en el paso de CI que sincroniza y construye la Native Build:

- run: CAPGO_LIVE_UPDATES=true npx cap sync
- run: ./build-native-app.sh

Ejecuta npx cap sync tras configurar la variable, ya que Capacitor copia esta configuración en los proyectos nativos durante el sync. Sin la variable, los builds locales y de emulador mantienen autoUpdate: false y no buscan Live Update.

  1. Incrementa la versión usada por CapacitorUpdater.version para el binario nativo.
  2. Desactivar Permitir build de desarrollo y Permitir emuladores en el canal al probar esos tipos de build.
  3. Build local sin CAPGO_LIVE_UPDATES.
  4. Configura CAPGO_LIVE_UPDATES=true solo antes de npx cap sync en el job de CI nativo que debería recibir live updates.