跳转到内容

达美航空更新

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

这对于速度较慢或按流量计费的网络连接的用户尤其有利,因为它可以最大限度地减少需要下载的数据量。

第二个好处是,当应用程序拥有大量很少更改的资源(例如图像或视频)时,与压缩的 JS 文件相比,它只会下载一次。

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

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

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

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

要为您的 Capgo 应用程序启用 Delta(清单)更新,只需在上传新版本时使用 --delta 标志即可:

Terminal window
npx @capgo/cli@latest bundle upload --delta

如果 capacitor.config 中启用了 directUpdate,则 CLI 会检测到它。在非交互式环境中,它会自动发送增量(清单)更新,而在交互式环境中,它会提示您在上传之前确认。使用 --no-delta 强制上传完整包。

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

Terminal window
npx @capgo/cli@latest bundle upload --delta-only

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

如果出现以下情况,您可能需要使用 --delta-only

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

如果您需要在设置 --delta-only 时执行完整捆绑包上传,只需运行不带 --delta-only 的上传命令即可。这将覆盖单个上传的设置,允许您在需要时推送完整的捆绑包。

故障排除如果 Delta(清单)更新似乎不起作用(即设备总是下载完整的 JS 包,即使是很小的更改),请仔细检查:

Section titled “故障排除如果 Delta(清单)更新似乎不起作用(即设备总是下载完整的 JS 包,即使是很小的更改),请仔细检查:”
  • 每次上传新版本时,您都会使用 --delta 标志
  • 如果使用 --delta-only,请确保您没有意外省略 --delta 标志
  • 您的设备正在运行最新版本的 Capgo 插件
  • 您的设备有稳定的网络连接,可以访问 Capgo 服务器

您还可以使用 Capgo 网络应用程序检查上次上传的详细信息:

  1. 转到网络应用程序
  2. 单击您的应用程序
  3. 单击统计栏的捆绑包编号。
  4. 选择最后一个捆绑包
  5. 检查 Partial 字段 捆绑类型

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

就是这样! --delta 标志告诉 Capgo 执行 Delta(清单)更新所需的单个文件上传和清单生成。

请注意,每次上传要作为 Delta(清单)更新交付的新版本时,您都需要使用 --delta。如果省略该标志,Capgo 会将整个 JS 包作为单个文件上传,并且设备将下载整个包,即使只有一小部分发生了更改。