Vai al contenuto

Testa le Native Build senza Live Updates

Quando testi un nuovo binario nativo, assicurati che parta dagli asset web inclusi in quel binario, non da un live update scaricato in precedenza. Usa uno o combina gli accorgimenti seguenti.

Imposta CapacitorUpdater.version dalla versione usata per la release nativa e incrementala per ogni build nativa. Una baseline nativa più recente rende il binario installato distinto dai bundle precedenti e, con il valore predefinito resetWhenUpdate: true, rimuove i bundle scaricati quando viene installata l'app nativa più recente.

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;

Ad esempio, un binario compilato con version: '1.4.1' ha una baseline nativa più alta rispetto a un 1.4.0 bundle. Non riutilizzare una versione nativa quando è necessario verificare gli asset del bundle.

2. Blocca gli update da emulatori e development build nella Console

Sezione intitolata “2. Blocca gli aggiornamenti per Emulator e build di sviluppo nella console”

Apri la tua app nella console Capgo, vai a Canali, seleziona il canale utilizzato dalla build e apri la Informazioni scheda. Disattiva entrambi entrambi Consenti development build e Consenti emulatori.

Capgo scheda Information del canale con le impostazioni Allow development build e Allow Emulators
Questi controlli si trovano nella scheda Information del canale. Disabilita entrambe le impostazioni evidenziate per mantenere le build di sviluppo e gli emulatori sui loro web assets bundle.

Questa policy del canale blocca la consegna degli update solo per i tipi di build selezionati. I dispositivi fisici firmati per la produzione possono comunque ricevere update in base alle altre impostazioni del canale.

3. Abilita Live Updates solo nelle build native in CI

Sezione “3. Abilitare i Live Update solo nelle build CI native”

Per i team che vogliono che le build locali, degli emulatori e degli sviluppatori siano sicure di default, rendi i Live Update opt-in tramite una variabile d'ambiente. La config qui sotto disabilita il check degli update a meno che CAPGO_LIVE_UPDATES sia esattamente 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;

Imposta la variabile solo nel passaggio CI che sincronizza e compila l'app nativa:

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

Esegui npx cap sync dopo aver impostato la variabile, perché Capacitor copia questa configurazione nei progetti nativi durante la sincronizzazione. Senza la variabile, le build locali e le build dell'emulatore mantengono autoUpdate: false e non verificano gli aggiornamenti live.

  1. Aumenta la versione utilizzata da CapacitorUpdater.version per il binario nativo.
  2. Disattiva Consenti development build e Consenti emulatori sul canale durante il test di questi tipi di build.
  3. Build localmente senza CAPGO_LIVE_UPDATES.
  4. Imposta CAPGO_LIVE_UPDATES=true solo prima npx cap sync nel job CI nativo che deve ricevere le Live Update.