Aller directement au contenu

Tester les builds natifs sans mises à jour en temps réel

Lors de la mise en œuvre d'une nouvelle application native, assurez-vous qu'elle démarre à partir des ressources web intégrées dans ce fichier exécutable et non à partir d'une mise à jour live téléchargée précédemment. Utilisez une ou combinez les mesures de sécurité suivantes.

Configurer CapacitorUpdater.version à partir de la version utilisée pour votre version native, et augmentez-la pour chaque build natif. Une version native plus récente rend le fichier exécutable installé distinct des anciens bundles et, par défaut, supprime les bundles téléchargés lorsque l'application native plus récente est installée. resetWhenUpdate: true1. Mettre à jour la version de base 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 construit avec version: '1.4.1' a une base native plus élevée qu'un binaire existant. 1.4.0 N'évaluez pas une version native lorsque vous devez vérifier les actifs du paquet.

2. Bloquer les mises à jour de l'émulateur et des builds de développement dans la Console

Sous-titre « 2. Bloquer les mises à jour de l'émulateur et des builds de développement dans la Console »

Ouvrez votre application dans le Capgo console, allez dans Canaux, sélectionnez le canal utilisé par le build, et ouvrez la Informations rubrique. Désactivez cette option both Autoriser la construction de développement et Autoriser les émulateurs.

Capgo L'onglet d'informations du canal affiche les paramètres Autoriser la construction de développement et Autoriser les émulateurs
Ces contrôles se trouvent dans l'onglet d'informations du canal. Désactivez les deux paramètres mis en surbrillance pour conserver les builds de développement et les émulateurs sur leurs actifs web embarqués.

Cette politique de canal bloque la livraison de mises à jour uniquement pour les types de builds 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 mises à jour en temps réel uniquement dans les builds CI natifs

Section intitulée « 3. Activer les mises à jour en temps réel uniquement dans les builds CI natifs »

For les équipes qui veulent que les builds locaux, émulateurs et développeurs soient sécurisés par défaut, rendez les mises à jour en direct optionnelles en utilisant une variable d'environnement. La configuration ci-dessous désactive les vérifications de mise à jour à moins que 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;

Fixez la variable uniquement dans l'étape CI qui synchronise et construit l'application native :

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

Exécuter npx cap sync après avoir fixé la variable car Capacitor copie cette configuration dans les projets natifs lors de la synchronisation. Sans la variable, les builds locaux et les builds émulateurs gardent autoUpdate: false et ne vérifient pas les mises à jour en direct.

  1. Augmenter la version utilisée par CapacitorUpdater.version pour le binaire natif.
  2. Désactiver Autoriser la construction de développement et Autoriser les émulateurs sur le canal lors du test de ces types de construction.
  3. Construire localement sans CAPGO_LIVE_UPDATES.
  4. Définir CAPGO_LIVE_UPDATES=true seulement avant npx cap sync dans le job CI natif qui devrait recevoir les mises à jour en temps réel.