跳过内容

自动更新

GitHub

本文档将解释如何运行您的自动更新服务器。

确保您的捆绑包通过 HTTPS 服务,并且服务器有正确的 CORS 头来允许应用程序下载更新。 例如 https://myserver.com/app/updates/updates.json

如果您不熟悉部署一个捆绑包,我们建议您尝试 Capgo 云或查看示例:

配置

配置

添加一个 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应以JSON格式响应capacitor-updater插件。 如果有更新需要:

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

在自动更新模式下,服务器应比较版本并返回正确的版本,如果URL键存在,则启动下载过程。

如果您添加“message”和“error”键,版本将不会被设置,消息将在日志中显示而不是版本。

version key应以 semver 格式。

zip文件应包含 index.html 作为根目录下的文件,或根目录下只有一个文件夹,文件夹内包含 index.html 文件

您可以使用命令CLI来压缩您的捆绑包:

创建一个包含您文件的捆绑包,供您的服务器服务
npx @capgo/cli bundle zip --path [/path/to/my/bundle]

生成捆绑包校验和

标题:生成捆绑包校验和

重要: 您必须使用Capgo CLI来创建您的捆绑包zip文件。Capgo插件需要特定的zip格式和结构,这种格式和结构只有使用官方CLI工具才能保证。标准zip工具可能会创建不兼容的存档。

要为您的捆绑包生成校验和,请使用Capgo CLI zip命令,带有以下标志: --json 标志:

复制到剪贴板
npx @capgo/cli bundle zip [appId] --json

生成捆绑包并包含校验信息

  • 创建一个与Capgo插件兼容的格式化zip文件
  • 生成SHA256校验和进行完整性验证
  • 以JSON格式输出捆绑包信息

示例输出:

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

使用 checksum 从此输出中获取值并将其添加到API响应中,以便在安装前让插件验证捆绑包完整性

继续从Auto Update

标题:继续从Auto Update

如果您正在使用 Auto Update 来规划迁移和企业运营,连接它 使用@capgo/capacitor-updater 用于@capgo/capacitor-updater中的本地能力 Capgo企业版 用于Capgo企业版中的产品工作流 Ionic 企业插件替代品 用于Ionic 企业插件替代品中的产品工作流 Capgo替代品 用于Capgo替代品中的产品工作流 Capgo咨询 用于Capgo咨询中的产品工作流