跳过内容

Delta 更新

Capgo的Live Update系统可以更快、更高效地通过仅发送更改的文件来发送更新,而不是整个JS包。

这尤其适用于使用较慢或计量网络连接的用户,因为它最小化了需要下载的数据量。

第二个好处是,当应用程序具有大量变化较少的资产时,例如图像或视频,相比于压缩的JS文件,它只会下载一次。

Delta(清单)更新的工作原理

标题:Delta(清单)更新的工作原理

Delta(清单)更新在Capgo中由Capgo插件处理,该插件安装在您的应用程序中。当您使用标志上传应用程序的新版本时,Capgo会执行以下操作: --delta flag, Capgo does the following:

  1. 为每个文件生成校验和
  2. __CAPGO_KEEP_1__
  3. 创建一个新的 JSON 清单,列出所有文件及其校验和
  4. 将此清单上传到 Capgo 数据库

当设备运行您的应用程序时,检查更新时,Capgo 插件从服务器接收新的清单。它将此清单与当前的清单进行比较,根据校验和和文件路径确定哪些文件已更改。

然后,插件只下载更改的文件,而不是整个 JS 包。它通过将下载的文件与已有的未更改文件结合起来,重建应用程序的新版本。

启用 Delta (清单) 更新

标题:启用 Delta (清单) 更新

要为您的 Capgo 应用程序启用 Delta (清单) 更新,请简单地在上传新版本时使用以下标志: --delta 终端窗口

要为您的 __CAPGO_KEEP_0__ 应用程序启用 Delta (清单) 更新,请简单地在上传新版本时使用以下标志:
npx @capgo/cli@latest bundle upload --delta

如果 directUpdate 在您的 capacitor.config, the CLI detects it. In non-interactive environments it sends Delta (manifest) updates automatically, and in interactive environments it prompts you to confirm before uploading. Use --no-delta ,则__CAPGO_KEEP_0__会检测到它。在非交互式环境中,它会自动发送Delta(清单)更新,在交互式环境中,它会在上传之前提示您确认。使用

来强制进行全量包上传。

强制Delta(清单)更新

标题:强制Delta(清单)更新 --delta-only 如果您想确保所有上传都是Delta(清单)更新,并防止任何意外的全量包上传,请使用

标志:
npx @capgo/cli@latest bundle upload --delta-only

复制到剪贴板 --delta-only 在使用此选项时,Capgo 将仅上传单个文件并生成一个清单。任何不支持Delta(清单)更新的设备都无法下载更新。

您可能想使用 --delta-only 如果:

  • 您总是想使用Delta(清单)更新,并且不想允许全包上传
  • 您正在设置CI/CD管道,并且希望确保所有自动上传都是Delta(清单)
  • 您的应用程序很大,带宽受限,因此需要最小化上传/下载大小

如果您需要在 --delta-only 设置时进行全包上传,仅需运行上传命令而不 --delta-only。这将覆盖该单次上传的设置,允许您在需要时推送一个完整的包。

如果Delta(清单)更新似乎不起作用(即设备总是下载全JS包,即使有小变化),请检查:

  • 您正在使用 --delta 每次上传新版本时都需要
  • 如果使用 --delta-only,请确保没有意外遗漏 --delta 标志
  • Your device is running the latest version of the Capgo plugin
  • Your device has a stable network connection and can reach the Capgo servers

You can also use the Capgo webapp to check the details of your last upload:

  1. 服务器 您还可以使用
  2. webapp
  3. 查看您上次上传的详细信息:
  4. 选择最后的捆绑包
  5. 检查 Partial 字段 捆绑包类型

如果您继续遇到问题,请联系 Capgo 支持团队获取进一步帮助。他们可以检查服务器日志来确认您的 Delta (清单) 上传是否正确处理,并且设备是否正在接收更新的清单。

完成!该标志告诉 __CAPGO_KEEP_0__ 执行单个文件上传和清单生成所需的 Delta (清单) 更新。 --delta flag tells Capgo to perform the individual file uploads and manifest generation needed for Delta (manifest) updates.

,以便该版本作为 Delta (清单) 更新被传递。如果您省略该标志,__CAPGO_KEEP_0__ 将上传整个 JS 捆绑包作为单个文件,设备将下载整个捆绑包,即使只有小部分发生了变化。 --delta every time you upload a new version that you want to be delivered as a Delta (manifest) update. If you omit the flag, Capgo will upload the entire JS bundle as a single file, and devices will download the whole bundle even if only a small part has changed.