跳过内容

Delta更新

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

这尤其有利于使用较慢或带宽受限网络连接的用户,因为它最小化了需要下载的数据量。

应用大型资产(如图片或视频)时,尽管它们很少变化,但它们只会下载一次。

如何 Delta (清单) 更新工作

如何Delta(清单)更新工作

Delta(manifest)更新在Capgo中由您应用程序中安装的Capgo插件处理。 当您使用Capgo上传应用程序的新版本时, --delta 标志,Capgo 的功能是:

  1. 每个文件在您的构建中都将单独上传
  2. 每个文件都生成校验和
  3. 在 Capgo 中,会创建一个新的 JSON 清单,列出所有文件及其校验和
  4. 本清单将上传到Capgo数据库

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

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

启用Delta(Manifest)更新

启用Delta(Manifest)更新

要为您的Capgo应用启用Delta(manifest)更新,请简单地使用 --delta 标志上传新版本时:

终端窗口
npx @capgo/cli@latest bundle upload --delta

如果 autoUpdate 设置为即刻应用模式("atInstall", "onLaunch""always"),则__CAPGO_KEEP_0__会检测到它。在非交互环境中,它会自动发送Delta(清单)更新,而在交互环境中,它会在上传之前提示您确认。 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. Legacy directUpdate config仍然被检测到。使用 --no-delta 强制进行一次完整的包上传。

  • 空文件: CLI日志 Ignoring empty file... 并排除零字节文件从Delta清单。它不会停止上传,因此添加一个空文件可以改变结果包而不停止部署。不要在Delta包路径中包含零字节文件。
  • 路径中的空格: Delta上传在包路径包含一个空格之前会失败。重命名文件或目录以移除空格,然后上传Delta更新。

强制Delta(清单)更新

标题:强制Delta(清单)更新

如果您想确保所有上传都是Delta(清单)更新,并防止任何意外的完整包上传,则可以使用 --delta-only flag:

终端窗口
npx @capgo/cli@latest bundle upload --delta-only

--delta-only 使用时,Capgo 将仅上传单个文件并生成清单。任何不支持 Delta(清单)更新的设备都无法下载更新。

您可能想使用 --delta-only if:

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

如果您需要在设置了时进行全包上传,仅需运行上传命令而不 --delta-only __CAPGO_KEEP_0__ --delta-only. 这将覆盖单次上传的设置,使您能够在需要时推送完整的捆绑包。

Troubleshooting

故障排除

如果 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. 前往 webapp
  2. 点击您的应用
  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.

Note that you need to use --delta 每次你上传一个你想作为Delta(manifest)更新的新版本。如果你省略了标志,Capgo会上传整个JS包作为一个单独的文件,设备会下载整个包,即使只有一个小部分发生了变化。

继续使用Delta更新

标题:继续使用Delta更新

如果你正在使用 Delta更新 上下文:产品/定价页面。角色:短的UI标签或导航项。见于:企业产品页面。消息键`enterprise_delta_updates`(企业Delta更新)。 Capgo Live Updates Capgo Live Updates 上下文:实时更新产品页面。角色:短的UI标签或导航项。见于:实时更新页面。保留Capgo产品/品牌和开发者术语完全不变。消息键`live_update_hero_badge`(实时更新英雄徽标)。 用于__CAPGO_KEEP_0__ Live Updates中的产品工作流程 概览 用于概览中的实现细节, 更新行为 为更新行为的实现细节 更新类型 为更新类型的实现细节