Aller au contenu

Types de mise à jour

Capgo prend en charge plusieurs types de mises à jour OTA. Cette page les répertorie et les explique afin que vous puissiez choisir la bonne combinaison pour votre application.

Contrôles Quand une mise à jour est appliquée après son téléchargement. Le plugin vérifie les mises à jour lorsque l'application passe au premier plan et à intervalle régulier tant que l'application reste ouverte. periodCheckDelay contrôle cet intervalle (10 minutes par défaut).

TypeDescriptionCas d’usage
autoUpdate : atBackgroundVérifier et télécharger à chaque passage au premier plan, appliquer lorsque l'application passe en arrière-planLa plupart des applications ; perturbation minimale
autoUpdate : atInstallÀ appliquer immédiatement uniquement après une installation fraîche ou une mise à jour native du store ; sinon, utilisez atBackgroundNew users get latest; existing users use background apply
autoUpdate : onLaunchAppliquer immédiatement, uniquement au démarrage à froid (app tuée → premier plan) ; puis basculer sur atBackgroundÉquilibre entre fraîcheur et stabilité de la session
autoUpdate : alwaysVérifie à chaque transition vers le premier plan et applique immédiatement toute mise à jour disponibleCorrectifs critiques, apps avec un état simple
autoUpdate : onlyDownloadVérifier et télécharger automatiquement, émettre updateAvailable, et ne jamais appliquer automatiquementApps qui affichent leur propre prompt de mise à jour ou contrôlent précisément le moment de l'appel set()

Configurer dans capacitor.config.ts:

plugins: {
CapacitorUpdater: {
autoUpdate: 'atBackground', // default; true is still accepted
// or: 'off' | 'atInstall' | 'onLaunch' | 'always' | 'onlyDownload'
}
}

Conditions qui doivent être remplies avant une mise à jour est installée. Utilisez setMultiDelay pour les combiner (toutes les conditions doivent être satisfaites).

ConditionDescriptionExemple
dateAttendre qu'une date/heure précise soit passéeCoordonner avec une release côté serveur
backgroundAttendre une durée minimale (ms) après le passage en backgroundÉviter d'appliquer lors de bascules rapides d'app
nativeVersionExiger une version minimale du binaire natifBloquer les mises à jour sur un code natif incompatible
ArrêterWait until the next app kill eventAppliquer uniquement lors d'un redémarrage complet
import { CapacitorUpdater } from '@capgo/capacitor-updater';
await CapacitorUpdater.setMultiDelay({
delayConditions: [
{ kind: 'date', value: '2023-06-01T00:00:00.000Z' },
{ kind: 'background', value: '60000' },
],
});

Contrôle quel mises à jour semver canal livrera automatiquement. Se configure via --disable-auto-update sur les canaux.

StratégieBlocsPermet deCas d’usage
AucuneAucunToute version de bundle ciblePar défaut ; mise à jour automatique complète
majeureMajeure supérieure à version_build, par exemple 1.2.3 -> 2.0.0Même version majeure, par exemple 1.2.3 -> 1.9.0 ou 1.2.3 -> 1.2.4Empêcher les breaking changes d'atteindre les anciens code natifs
mineureVersion majeure ou mineure différente de version_build, par exemple 1.2.3 -> 1.3.0Même version majeure et mineure, par exemple 1.2.3 -> 1.2.4Garder les mises à jour sur une même ligne mineure native
patchTout changement de numéro majeur, mineur ou patch, par exemple 1.0.0 -> 1.0.1Seul le suffixe change, tandis que MAJOR.MINOR.PATCH reste identique, par exemple 1.0.0-beta.1 -> 1.0.0-beta.2 ou 1.0.0+build.1 -> 1.0.0+build.2Mode le plus strict : version du core figée
MétadonnéesManquant min_update_version, ou version_build en dessousBundle cible dont le min_update_version est inférieur ou égal à version_buildRègles de compatibilité personnalisées par bundle

Ces vérifications comparent le bundle cible à la baseline native envoyée en tant que version_build, et non au bundle téléchargé actuellement installé envoyé en tant que version_name.

Fenêtre de terminal
npx @capgo/cli channel set production --disable-auto-update major

Comment le bundle est transféré vers l'appareil.

TypeDescriptionQuand utiliser
Bundle completLe bundle JS complet est téléchargéPremière installation, changements majeurs ou si le delta est indisponible
DeltaSeuls les fichiers modifiés sont téléchargésLa plupart des mises à jour ; rapide et léger
Fenêtre de terminal
# Full bundle (default)
npx @capgo/cli bundle upload --channel production
# Delta updates
npx @capgo/cli bundle upload --channel production --delta
CatégorieTypes
Moment d’applicationoff, atBackground, atInstall, onLaunch, always, onlyDownload
Conditions de délaidate, background, nativeVersion, kill
Blocage de versionnone, major, minor, patch, metadata
LivraisonBundle complet, Delta

Si vous utilisez Types de mise à jour pour planifier la livraison de live update, connectez-l’à Live Updates Capgo pour le workflow produit dans Capgo Live Updates, Aperçu pour les détails d'implémentation dans Vue d'ensemble, Fonctionnalités pour le détail d’implémentation dans Fonctionnalités, Comportement de mise à jour pour les détails d'implémentation dans Update Behavior, et Prise en main pour les détails d'implémentation dans Getting Started.