Passer à la navigation

Testez les builds natifs sans mises à jour en direct

Lors de la test d'une nouvelle application native, assurez-vous qu'elle démarre à partir des ressources web intégrées dans ce fichier — 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.

Définir CapacitorUpdater.version à partir de la version utilisée pour votre version native, et augmentez-la pour chaque build native. Une version native plus récente rend l'application installée distincte des anciens bundles et, par défaut, supprime les bundles téléchargés lors de l'installation de l'application native plus récente. resetWhenUpdate: trueCopier dans le presse-papier

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;

a une version native plus élevée qu'une version existante version: '1.4.1' bundle. N'utilisez pas une version native réutilisée lorsque vous devez vérifier les ressources intégrées. 1.4.0 For example, a binary built with

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

Titre de la section « 2. Bloquer les mises à jour de l'émulateur et des builds de développement dans la console »

Ouvrez votre application dans la console Capgo, allez à Canaux, sélectionnez le canal utilisé par le build, et ouvrez la Information rubrique. Désactivez les deux Permettre les builds de développement et Permettre les émulateurs Allow Emulators.

Capgo canal d'information : onglet affichant les paramètres Autoriser les builds de développement et Autoriser les émulateurs
Ces contrôles se trouvent dans l'onglet d'information 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 en fonction des 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 »

Pour les équipes qui veulent que les builds locaux, émulateurs et de développement soient sécurisés par défaut, rendez les mises à jour en temps réel optionnelles à l'aide d'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 défini la variable car Capacitor copie cette configuration dans les projets natifs lors de la synchronisation. Sans la variable, les builds locaux et les builds de simulateur gardent autoUpdate: false et ne vérifient pas les mises à jour en temps réel.

  1. Augmenter la version utilisée par CapacitorUpdater.version pour le binaire natif.
  2. Désactiver Autoriser les builds de développement et Autoriser les émulateurs lorsque vous testez ces types de build.
  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 des mises à jour en temps réel.