Auto Update
Cette documentation expliquera comment exécuter votre serveur de mise à jour automatique
Servir votre bundle
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 exemple https://myservercom/app/updates/updatesjson
Si vous n’êtes pas familier avec la distribution d’un bundle, nous vous recommandons d’essayer Capgo Cloud ou de voir un exemple ici :
Configuration
Ajoutez une updateUrl
à votre capacitorconfigjson
{ "plugins": { "CapacitorUpdater": { "updateUrl": "https://myservercom/app/updates/updatesjson", } }}
API de mise à jour
Le plugin effectuera un appel POST vers votre API chaque fois que l’application est ouverte, avec ce corps :
interface AppInfos { "platform": "ios" | "android", "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_SYSYEM_OS", "is_emulator": boolean, "is_prod": boolean,}
Le serveur API doit répondre, en JSON, au plugin capacitor-updater avec ces données si une mise à jour est nécessaire :
{"version": "123","url": "https://myservercom/app/updates/my-new-app-200zip"}
En mode de mise à jour automatique, le serveur doit comparer les versions et renvoyer la bonne. Si la clé URL est présente, le plugin commence le processus de téléchargement
Si vous ajoutez les clés “message” et “error”, la version ne sera pas définie, et le message sera affiché dans les logs à la place
La clé version
doit être au format semver
Le zip doit avoir indexhtml
comme fichier à la racine, ou un seul dossier à la racine avec indexhtml
à l’intérieur
Vous pouvez utiliser la commande du CLI pour zipper votre bundle :
npx @capgo/cli bundle zip --path [/path/to/my/bundle]