Saltar al contenido

Probar compilaciones nativas sin actualizaciones en vivo

Al probar una nueva binaria nativa, asegúrese de que comience desde los activos web empaquetados en esa binaria, no desde una actualización en vivo descargada previamente. Utilice uno o combine los siguientes salvaguardas.

Establecer CapacitorUpdater.version desde la versión utilizada para su lanzamiento nativo, y aumentarla para cada compilación nativa. Una versión más nueva de la base nativa hace que la binaria instalada sea distinta de los paquetes antiguos y, con la configuración predeterminada resetWhenUpdate: trueelimina los paquetes descargados cuando se instala la aplicación nativa más nueva.

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, una binaria construida con version: '1.4.1' tiene una base nativa más alta que una existente 1.4.0 paquete. No reutilice una versión nativa cuando necesite verificar los activos empaquetados.

2. Bloquear actualizaciones de emulador y compilación de desarrollo en la consola

Sección titulada “2. Bloquear actualizaciones de emulador y compilación de desarrollo en la consola”

Abra su aplicación en la consola Capgo, vaya a Canales, seleccione el canal utilizado por la compilación, y abra la Información pestaña. Desactive 2. Block Emulator and Development-Build Updates in the Console ambos Permitir construcción de desarrollo y Permitir emuladores.

Capgo información de canal de la pestaña mostrando los ajustes Permitir construcción de desarrollo y Permitir emuladores
Estos controles están en la pestaña de información de canal. Deshabilite ambos ajustes destacados para mantener las construcciones de desarrollo y emuladores en sus activos web empaquetados.

Esta política de canal bloquea la entrega de actualizaciones solo para los tipos de construcción seleccionados. Los dispositivos físicos firmados en producción pueden seguir recibiendo actualizaciones según los otros ajustes del canal.

3. Habilitar actualizaciones en vivo solo en compilaciones CI nativas

Sección titulada “3. Habilitar actualizaciones en vivo solo en compilaciones CI nativas”

Para equipos que desean que las compilaciones locales, de emulador y de desarrollador sean seguras por defecto, hagan que las actualizaciones en vivo sean de opción a través de una variable de entorno. La configuración a continuación deshabilita las comprobaciones de actualizaciones a menos que CAPGO_LIVE_UPDATES es 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;

Establezca la variable solo en el paso de CI que sincroniza y compila la aplicación nativa:

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

Ejecutar npx cap sync después de establecer la variable porque Capacitor copia esta configuración en los proyectos nativos durante la sincronización. Sin la variable, las compilaciones locales y de emulador siguen autoUpdate: false y no comprobando actualizaciones en vivo.

  1. Incrementar la versión utilizada por CapacitorUpdater.version para el binario nativo.
  2. Deshabilitar Permitir la construcción de desarrollo y Permitir emuladores en el canal cuando se estén probando esos tipos de construcción.
  3. Construye localmente sin CAPGO_LIVE_UPDATES.
  4. Establecer CAPGO_LIVE_UPDATES=true solo antes npx cap sync en el trabajo CI nativo que debería recibir actualizaciones en vivo.