Saltare al contenuto

Testa i build nativi senza aggiornamenti in tempo reale

Quando si testa un nuovo binario nativo, assicurati che inizi da asset web inclusi in quel binario - non da un aggiornamento live precedentemente scaricato. Utilizza uno o combinare le misure di sicurezza riportate di seguito.

Imposta CapacitorUpdater.version da quella utilizzata per la tua versione nativa, e aumentalo per ogni build nativo. Una baseline nativa più recente rende il binario installato diverso dalle vecchie raccolte e, con la configurazione predefinita resetWhenUpdate: true, rimuove le raccolte scaricate quando viene installato 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 costruito con version: '1.4.1' ha una baseline nativa più alta di una raccolta esistente 1.4.0 non riutilizzare una versione nativa quando hai bisogno di verificare gli asset raccolti.

2. Blocca gli aggiornamenti per emulatori e build di sviluppo nella Console

Sezione intitolata “2. Blocca gli aggiornamenti per emulatori e build di sviluppo nella Console”

Apre il tuo app nella console Capgo, vai a Canalicontext , seleziona il canale utilizzato dal build, e apri la sezione ‘Informazioni’ tab. Spegni Spegni entrambi Consenti alla costruzione di sviluppo e contexto: Pagina/Area: Sito web di marketing Capgo. Ruolo: Etichetta breve UI o elemento di navigazione. Visualizzato in: pagina trust.astro. Chiave messaggio `e` (E)..

Capgo channel Information tab showing the Allow development build and Allow Emulators settings
__CAPGO_KEEP_0__ Informazioni sul canale Tab che mostra le impostazioni Consenti alla costruzione di sviluppo e Consenti agli emulatori

L'immagine mostra dove trovare le impostazioni; i suoi pulsanti evidenziati sono abilitati. Spegni entrambi i pulsanti per un canale che non deve inviare aggiornamenti live alle costruzioni di sviluppo o agli emulatori. Questa politica del canale blocca la consegna degli aggiornamenti solo per i tipi di costruzione selezionati. I dispositivi fisici firmati con la produzione possono ancora ricevere aggiornamenti in base agli altri impostazioni del canale.

3. Abilita gli aggiornamenti in tempo reale solo nei build CI nativi

Sezione intitolata “3. Abilita gli aggiornamenti in tempo reale solo nei build CI nativi”

Per le squadre che desiderano che i build locali, emulator e di sviluppatore siano sicuri di default, rendi gli aggiornamenti in tempo reale facoltativi tramite una variabile di ambiente. La configurazione di seguito disabilita le verifiche degli aggiornamenti a meno che CAPGO_LIVE_UPDATES è 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 passo di CI che sincronizza e costruisce l'app nativa:

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

Eseguisci npx cap sync dopo aver impostato la variabile perché Capacitor copia questa configurazione nei progetti nativi durante la sincronizzazione. Senza la variabile, i build locali e emulator non controllano gli aggiornamenti in tempo reale. autoUpdate: false Elenco di controllo rapido

Sezione intitolata “Elenco di controllo rapido”

3. Abilita gli aggiornamenti in tempo reale solo nei build CI nativi
  1. Aumenta la versione utilizzata da CapacitorUpdater.version per il binario nativo.
  2. Disabilita Consenti l'edizione di sviluppo e Consenti gli emulatori sulla canale quando si testano questi tipi di build.
  3. Costruisci localmente senza CAPGO_LIVE_UPDATES.
  4. Imposta CAPGO_LIVE_UPDATES=true solamente prima npx cap sync nel lavoro CI nativo che dovrebbe ricevere gli aggiornamenti in tempo reale.