メインコンテンツへスキップ

自動アップデート

GitHub

このドキュメントでは、オートアップデートサーバーの実行方法について説明します。

Bundleは必ずHTTPS経由で配信し、アプリがアップデートをダウンロードできるように、サーバーに適切なCORSヘッダーを設定してください。 例: https://myserver.com/app/updates/updates.json

Bundleの配信方法に詳しくない場合は、Capgo Cloudを試すか、こちらの例を参照することをお勧めします:

以下を追加 updateUrl あなたの capacitor.config.json.

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

アプリが起動するたびに、プラグインは以下のボディを使用して API へ POST リクエストを送信します:

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

サーバー API は、capacitor-updater プラグインに対して JSON 形式でレスポンスを返す必要があります。アップデートが必要な場合は、以下のデータを返してください:

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

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

「message」と「error」キーを追加した場合、バージョンは設定されず、代わりにメッセージがログに表示されます。

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

zipファイルには index.html をルートに配置するか、ルートに1つのフォルダのみを配置し、その中に index.html を含める必要があります。

CLI のコマンドを使用して、bundleをzip圧縮できます:

サーバーから配信するファイルを含むbundleを作成する
npx @capgo/cli bundle zip --path [/path/to/my/bundle]

重要: bundle zipファイルを作成するには、Capgo CLIを使用する必要があります。Capgo pluginは特定のzip形式と構造を必要としており、これは公式のCLIツールを使用した場合にのみ保証されます。標準的なzipユーティリティでは、互換性のないアーカイブが作成される可能性があります。

bundleのチェックサムを生成するには、Capgo CLIのzipコマンドに以下の --json フラグを使用してください:

チェックサム情報を含むbundleを作成する
npx @capgo/cli bundle zip [appId] --json

このコマンドを実行すると:

  • Capgo pluginと互換性のある、正しくフォーマットされたzipファイルを作成します
  • 整合性検証用のSHA256チェックサムを生成します
  • bundle情報をJSON形式で出力します

出力例:

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

以下の checksum プラグインがインストール前にバンドルの整合性を検証できるよう、この出力値を API レスポンスに含めてください。

使用している場合 自動アップデート 移行とエンタープライズ運用を計画するには、次と連携してください @capgo/capacitor-updater を使用する 「@capgo/capacitor-updater を使用する」のネイティブ機能については、 Capgo エンタープライズ Capgo Enterprise のプロダクトワークフロー向けに、 Ionic Enterprise プラグインの代替案 Ionic Enterprise Plugin Alternatives のプロダクトワークフロー向けに、 Capgo の代替案 Capgo Alternatives のプロダクトワークフロー向け、および Capgo コンサルティング Capgo Consulting のプロダクトワークフロー向けに。