Passer au contenu

Mise à jour automatique

Cette documentation vous expliquera comment exécuter votre serveur de mise à jour automatique.

Assurez-vous que votre bundle est servi via HTTPS et que le serveur dispose des en-têtes CORS appropriés pour permettre à l’application de télécharger la mise à jour. par ex. https://myserver.com/app/updates/updates.json

Si vous n’êtes pas habitué à proposer une offre groupée, nous vous recommandons d’essayer Capgo Cloud ou de consulter un exemple ici :

##Configuration Ajoutez un updateUrl à votre capacitor.config.json.

{
"plugins": {
"CapacitorUpdater": {
"updateUrl": "https://myserver.com/app/updates/updates.json",
}
}
}

Le plugin effectuera un appel POST à votre API à chaque fois que l’application est ouverte, avec ce corps :

interface AppInfos {
"platform": "ios" | "android" | "electron",
"device_id": "UUID_of_device_unique_by_install",
"app_id": "APPID_FROM_CAPACITOR_CONFIG",
"custom_id": "your_custom_id_set_on_runtime",
"plugin_version": "PLUGIN_VERSION",
"version_build": "VERSION_NUMBER_FROM_NATIVE_CODE",
"version_code": "VERSION_CODE_FROM_NATIVE_CODE",
"version_name": "LAST_DOWNLOADER_VERSION" | "builtin"
"version_os": "VERSION_OF_SYSTEM_OS",
"is_emulator": boolean,
"is_prod": boolean,
}

Le serveur API doit répondre, en JSON, au plugin condensateur-updater. Avec ces données si une mise à jour est nécessaire :

{
"version": "1.2.3",
"url": "https://myserver.com/app/updates/my-new-app-2.0.0.zip",
"checksum": "sha256_checksum_of_bundle"
}

En mode mise à jour automatique, le serveur doit comparer les versions et renvoyer la bonne, si la clé URL est présente, le plugin démarre le processus de téléchargement.

Si vous ajoutez les clés « message » et « erreur », la version ne sera pas définie et le message sera affiché dans les journaux à la place.

La clé version doit être au format semver.

Le zip doit contenir index.html comme fichier à la racine, ou un seul dossier à la racine avec index.html à l’intérieur.

Vous pouvez utiliser la commande du CLI pour compresser votre bundle :

Create a bundle with your files to serve from your server
npx @capgo/cli bundle zip --path [/path/to/my/bundle]

Génération de la somme de contrôle du bundle

Section titled “Génération de la somme de contrôle du bundle”

Important : Vous devez utiliser le Capgo CLI pour créer votre fichier zip de bundle. Le plugin Capgo nécessite un format et une structure zip spécifiques qui ne sont garantis que lors de l’utilisation de l’outil officiel CLI. Les utilitaires zip standard peuvent créer des archives incompatibles.

Pour générer la somme de contrôle de votre bundle, utilisez la commande zip Capgo CLI avec l’indicateur --json :

Create bundle with checksum information
npx @capgo/cli bundle zip [appId] --json

This command will:

  • Créez un fichier zip correctement formaté compatible avec le plugin Capgo
  • Générer la somme de contrôle SHA256 pour la vérification de l’intégrité
  • Informations sur le bundle de sortie au format JSON

Exemple de sortie :

{
"version": "1.2.3",
"checksum": "a1b2c3d4e5f6789...",
"size": 1234567
}

Utilisez la valeur checksum de cette sortie dans votre réponse API pour vous assurer que le plug-in peut vérifier l’intégrité du bundle avant l’installation.