自动更新
复制一个包含安装步骤和本插件的完整 Markdown 指南的配置提示。
本文档将解释如何运行您的自动更新服务器。
服务您的捆绑包
标题:服务您的捆绑包确保您的捆绑包通过 HTTPS 服务,并且服务器具有正确的 CORS 头来允许应用程序下载更新。
例如: https://myserver.com/app/updates/updates.json
如果您不熟悉服务捆绑包,我们建议您尝试 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 键存在,则插件会启动下载过程。
如果您添加“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 flag:
npx @capgo/cli bundle zip [appId] --json本命令将:
- 创建一个与 Capgo 插件兼容的正确格式的 zip 文件
- 生成 SHA256 散列以进行完整性验证
- 输出包信息以 JSON 格式
示例输出:
{ "version": "1.2.3", "checksum": "a1b2c3d4e5f6789...", "size": 1234567}使用 checksum 在您的 API 回应中包含此输出的值,以便插件在安装前验证捆绑包完整性。