自动更新
复制包含安装步骤和该插件完整 Markdown 指南的配置 prompt。
本文档将介绍如何运行您的自动更新服务器。
托管你的 bundle
“提供 Bundle 服务”章节请确保您的 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
标题为 “更新 API” 的章节每次应用启动时,插件都会向你的 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 中包含 key,插件将启动下载流程。
如果添加 “message” 和 “error” key,则不会设置版本,message 会改为显示在 logs 中。
version key 的格式应为 semver 。
zip 包应包含 index.html 作为根目录文件,或者根目录下只有一个包含 index.html 的文件夹。
你可以使用 CLI 的命令来压缩你的 bundle:
npx @capgo/cli bundle zip --path [/path/to/my/bundle]生成 Bundle 校验和
标题为“生成 Bundle 校验和”的章节重要提示: 你必须使用 Capgo CLI 来创建 bundle zip 文件。Capgo 插件要求特定的 zip 格式和结构,只有使用官方 CLI 工具才能确保兼容。标准 zip 工具可能生成不兼容的压缩包。
要为你的 bundle 生成校验和,请使用 Capgo CLI zip 命令并加上 --json 标志:
npx @capgo/cli bundle zip [appId] --json此命令会:
- 创建与 Capgo 插件兼容且格式正确的 zip 文件
- 生成用于完整性校验的 SHA256 校验和
- 以 JSON 格式输出 bundle 信息
输出示例:
{ "version": "1.2.3", "checksum": "a1b2c3d4e5f6789...", "size": 1234567}使用 checksum 将此输出值放入你的 API 响应中,以确保插件在安装前能验证 bundle 的完整性。
继续探索 Auto Update
标题为“继续探索 Auto Update”的部分如果你正在使用 自动更新 要规划迁移和企业运营,请将其与 使用 @capgo/capacitor-updater 用于“使用 @capgo/capacitor-updater”中的原生能力, Capgo 企业版 用于 Capgo Enterprise 中的产品工作流, Ionic Enterprise 插件替代方案 用于 Ionic Enterprise 插件替代方案的产品工作流, Capgo 替代方案 适用于 Capgo Alternatives 的产品工作流,以及 Capgo 咨询 适用于 Capgo Consulting 的产品工作流。