コンテンツへスキップ

自動アップデート

この文書では、自動更新サーバーの実行方法について説明します

バンドルの提供

バンドルがHTTPS経由で提供され、アプリが更新をダウンロードできるように適切なCORSヘッダーがサーバーに設定されていることを確認してください 例:https://myservercom/app/updates/updatesjson

バンドルの提供に不慣れな場合は、Capgo Cloudを試すか、以下の例を参照することをお勧めします:

設定

capacitorconfigjsonupdateUrlを追加します

{
"plugins": {
"CapacitorUpdater": {
"updateUrl": "https://myservercom/app/updates/updatesjson",
}
}
}

更新API

プラグインは、アプリが開かれるたびに、以下のボディでAPIにPOSTリクエストを送信します:

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,
}

サーバーAPIは、更新が必要な場合、capacitor-updaterプラグインに対して以下のようなJSONデータで応答する必要があります:

{
"version": "123",
"url": "https://myservercom/app/updates/my-new-app-200zip"
}

自動更新モードでは、サーバーはバージョンを比較して適切なものを返す必要があります。URLキーが存在する場合、プラグインはダウンロードプロセスを開始します

“message”と”error”キーを追加すると、バージョンは設定されず、代わりにメッセージがログに表示されます

versionキーはsemver形式である必要があります

zipファイルには、ルートにindexhtmlファイルがあるか、ルートにindexhtmlを含む1つのフォルダのみが必要です

CLIのコマンドを使用してバンドルをzip化できます:

サーバーから提供するファイルのバンドルを作成
npx @capgo/cli bundle zip --path [/path/to/my/bundle]