跳转至正文
教程

使用 Capacitor-updater 无缝更新您的 Capacitor 应用

各位 Capacitor Ionic 社区的朋友,今天我将指导大家将 Capacitor-updater 集成到应用中,从而实现无缝发布。

使用 Capacitor-updater 无缝更新您的 Capacitor 应用 Capgo 博客插图

什么是 Capacitor-updater?

Capacitor-updater,一种可即时向终端用户推送应用更新与改进的技术。

如果您希望进行关键 bug 修复并即时交付,而无需经过 App Store 审核,这一点尤其有用。

您可以将其视为一种“类 Web”的敏捷性,一旦更新可用即可立即侧载。

此外,如果新更新导致应用崩溃,它还提供回滚功能

它是如何工作的?

Capgo 会让你的应用 JavaScript bundle 与 Capgo 服务器保持同步。每当用户打开应用时,它都会向 Capgo 服务器检查 bundle 是否有新更新。当然,它还提供了大量出色的配置项,帮你精细调整用户体验。

我在开发的所有项目中都会使用 Capgo。这让我能减少在 App Store 审核流程上花费的时间。

阅读更多详情 这里.

使用 Capgo 理解语义化版本控制

Capgo 使用语义化版本控制 (semver) 来决定何时以及如何将更新应用到你的应用。这确保用户只会收到兼容的更新,并防止破坏性变更 (breaking changes) 被自动部署。

语义化版本遵循以下格式 MAJOR.MINOR.PATCH:

  • 大版本: 需要通过原生应用商店发布的破坏性变更
  • 次版本:向后兼容的新功能
  • 修订版本:向后兼容的 Bug 修复

例如,如果你的应用版本是 1.0.0 ,而你想更新到 1.0.1 (一个补丁版本),Capgo 会自动应用此更新。但是,如果你想从 1.0.0 改为 2.0.0 (大版本更新),这需要发布原生应用到应用商店,因为它意味着破坏性变更。

Capgo 的 Channel 设置允许你配置自动应用哪些类型的更新:

  • Major 策略:允许所有更新(请谨慎使用)
  • Minor 策略:仅允许 minor 和 patch 更新
  • Patch 策略:仅允许 patch 更新
  • Metadata 策略:需要满足最低版本要求

你可以测试不同版本组合在 Capgo 更新逻辑下的表现,借助我们的 Semver Tester 工具。该工具能帮助你根据你的 channel 配置,准确了解更新会在何时应用。

有什么限制吗?

听起来虽然不错,但有几件事需要留意。 首先,OTA 更新 仅适用于 web bundle。 你可能会觉得这不算什么大限制,因为在 Capacitor JS 中,我们几乎所有的 code 都是用 JS、CSS 和 HTML 编写的。 话虽如此,我们仍会向 App 中安装原生模块。 如果某个模块改动了你的 Android 或 iOS 目录,你就无法通过 OTA 更新 App。 因为这些目录的内容会用于编译原生二进制文件,而 OTA 无法更新这些内容。 即使是原生 App 也无法更新这部分。

不过你可以配置 CI/CD 来处理这部分,我写了篇教程讲怎么做 iOS 版在这里.

自动 Capgo 配置

现在就开始注册,获取你的 API 密钥来上传第一个版本吧!首先 注册一个 Capgo 账号.

登录 Capgo 后,你会看到一个 onboarding 页面

Onboarding 页面

按照入门页面的步骤添加您的第一个应用。

遵循 CLI 指南

在命令行中,进入您的 Capacitor 应用根目录,运行:

npx @capgo/cli@latest init 要将 Capgo 安装到您的 Capacitor 应用中,CLI 将引导您完成使用 Capgo 设置应用的过程。

如果您想手动操作,可以按照以下步骤进行。

手动 Capgo 配置

安装插件

完成后,你的 App 中应包含以下 code:

npm i @capgo/capacitor-updater && npx cap sync 将插件安装到你的 Capacitor App 中。

然后,在 App 中添加此 code,通知原生插件 JS bundle 状态正常(如果不执行此操作,原生插件将回滚到上一个版本):

import { CapacitorUpdater } from '@capgo/capacitor-updater'

CapacitorUpdater.notifyAppReady()

这将告知原生插件安装已成功。

然后执行 npm run build && npx cap copy 来更新你的 App。

登录 Capgo CLOUD

首先,使用 all apikey 使用你账户中的 apikey,通过 CLI 登录:

npx @capgo/cli@latest login YOU_KEY

添加你的第一个应用

首先,我们用 CLI 在 Capgo Cloud 中创建一个应用。

npx @capgo/cli@latest app add

这个命令会使用 Capacitor 配置文件中定义的所有变量来创建应用。

上传你的第一个版本

运行以下命令构建 code,并将其发送到 Capgo: npx @capgo/cli@latest bundle upload

默认情况下,版本名称将取自你的 package.json 文件。

查看 Capgo 如果构建已存在。

你甚至可以用我的 移动端 sandbox app 来测试.

将 channel 设为默认

将应用提交到 Capgo 后,你需要将 channel default 设为默认,让应用能接收来自 Capgo 的更新。

npx @capgo/cli@latest channel set production -s default

在设备上接收 Live Update

要让应用从 Deploy 接收 live update,你需要在设备或模拟器上运行应用。最简单的方法是用以下命令,在模拟器或连接到电脑的设备上启动本地应用。

npx cap run [ios | android]

打开应用,切到后台再打开,你应该能在 logs 中看到应用完成了更新。

恭喜!🎉 你已成功部署了第一个 Live Update。这只是 Live Updates 能做什么的开始。想了解更多,请查看完整的 Live Updates 文档.

如果需要在本地停止接收更新,请运行此命令 npx @capgo/cli@latest channel set

继续:使用 Capacitor-updater 无缝更新你的 Capacitor 应用

如果你正在使用 使用 Capacitor-updater 无缝更新您的 Capacitor 应用 要规划迁移和企业运营,请将其与 Capgo 企业版 用于 Capgo Enterprise 中的产品工作流, Ionic Enterprise 插件替代方案 用于 Ionic Enterprise 插件替代方案的产品工作流, Capgo 替代方案 用于 Capgo 替代方案的产品工作流, Capgo 咨询 适用于 Capgo Consulting 的产品工作流,以及 Capgo 高级支持 适用于 Capgo Premium Support 的产品工作流。

为 Capacitor 应用提供 Live Updates

当 Web 层出现线上 Bug 时,通过 Capgo 发布修复,而不用等 App Store 审核好几天。用户会在后台收到更新,原生变更则仍走正常审核流程。

博客最新动态

Capgo 为你提供打造真正专业的移动应用所需的最有价值的洞察。