Aller au contenu

Tester les Native Builds sans live updates

Quand vous testez un nouveau binaire natif, assurez-vous qu'il démarre à partir des assets web embarqués dans ce binaire, et non d'un live update téléchargé auparavant. Utilisez l'une des mesures de protection ci-dessous, ou combinez-les.

1. Incrémenter la version de référence native

Section intitulée « 1. Incrémenter la version de base native »

Définissez CapacitorUpdater.version à partir de la version utilisée pour votre release native, et incrémentez-l’à chaque build natif. Une base native plus récente rend le binaire installé distinct des anciens bundles et, avec la configuration par défaut, resetWhenUpdate: true, supprime les bundles téléchargés lors de l'installation de la nouvelle application native.

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;

Par exemple, un binaire compilé avec version: '1.4.1' a une base native plus élevée qu'un 1.4.0 bundle. Ne réutilisez pas une version native lorsque vous devez vérifier les assets du bundle.

Ouvrez votre application dans la console Capgo, allez dans Canaux, sélectionnez le canal utilisé par le build, puis ouvrez l’ Informations onglet. Activez désactivés les deux Autoriser le build de développement et Autoriser les émulateurs.

Onglet Informations du canal Capgo affichant les paramètres Autoriser le build de développement et Autoriser les émulateurs
Ces options se trouvent dans l’onglet Informations du canal. Désactivez les deux paramètres mis en évidence pour que les builds de développement et les émulateurs utilisent leurs assets web intégrés.

Cette politique du canal bloque la livraison des mises à jour uniquement pour les types de build sélectionnés. Les appareils physiques signés en production peuvent toujours recevoir des mises à jour selon les autres paramètres du canal.

3. Activer les live updates uniquement dans les builds CI natifs

Section intitulée « 3. Activer les live updates uniquement dans les builds CI natifs »

Pour les équipes qui veulent que les builds locaux, sur émulateur et de développement soient sécurisés par défaut, rendez les live updates opt-in via une variable d’environnement. La configuration ci-dessous désactive les vérifications de mise à jour sauf si CAPGO_LIVE_UPDATES est exactement 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;

Définissez la variable uniquement dans l'étape CI qui synchronise et compile l'application native :

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

Exécutez npx cap sync après avoir configuré la variable, car Capacitor copie cette configuration dans les projets natifs lors de la synchronisation. Sans cette variable, les builds locaux et sur émulateur conservent autoUpdate: false et ne vérifient pas les live updates.

  1. Incrémentez la version utilisée par CapacitorUpdater.version pour le binaire natif.
  2. Désactiver Autoriser le build de développement et Autoriser les émulateurs sur le canal lors du test de ces types de build.
  3. Compiler en local sans CAPGO_LIVE_UPDATES.
  4. Définissez CAPGO_LIVE_UPDATES=true uniquement avant npx cap sync dans le job CI natif qui doit recevoir les live updates.