自動アップデート
この文書では、自動更新サーバーの実行方法について説明します
バンドルの提供
バンドルがHTTPS経由で提供され、アプリが更新をダウンロードできるように適切なCORSヘッダーがサーバーに設定されていることを確認してください
例:https://myservercom/app/updates/updatesjson
バンドルの提供に不慣れな場合は、Capgo Cloudを試すか、以下の例を参照することをお勧めします:
設定
capacitorconfigjson
にupdateUrl
を追加します
{ "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]