跳过内容

回滚

虽然 Capgo 的实时更新允许您快速向用户提供改进和修复,但在某些情况下,您可能需要回滚到应用程序的前一个版本。也许新更新引入了一个意想不到的关键问题,或者您想在修复期间恢复特定更改。

Capgo 提供了多种方式来管理渠道的构建和控制用户接收的应用程序版本,包括手动回滚选项和自动安全机制。

Capgo includes a built-in safety mechanism to protect your users from broken updates. If a JavaScript error occurs before the notifyAppReady() __CAPGO_KEEP_0__ 包括一个内置的安全机制来保护您的用户免受破坏的更新。如 果在方法被调用之前发生 JavaScript 错误,插件将自动回滚到上一个工作版本。

如何自动回滚工作

标题:如何自动回滚工作

当下载并应用新更新时,Capgo 期望您的应用在可配置的时间框架内调用 notifyAppReady() 在此方法中,__CAPGO_KEEP_0__ 检测以下内容:

  • JavaScript 包裹没有严重错误
  • 您的应用的核心功能正常工作
  • 更新是安全的

如果 notifyAppReady() is not called due to a JavaScript crash or critical error, Capgo will:

  1. __CAPGO_KEEP_0__ 将检测到更新初始化失败
  2. __CAPGO_KEEP_0__ 将自动切换回上一个正常工作的包裹
  3. __CAPGO_KEEP_0__ 将标记该更新为失败以防止它再次被应用
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

此自动保护功能有助于确保,即使您意外推送了一个错误的更新,用户也不会被困在一个不可用的应用程序中。

您可以配置 Capgo 等待多长时间来调用 notifyAppReady() 通过设置 appReadyTimeout 在您的 Capacitor 配置中:

{
"plugins": {
"CapacitorUpdater": {
"appReadyTimeout": 10000
}
}
}

The appReadyTimeout 值是以毫秒为单位指定的。默认超时通常为10秒,但您可以根据应用程序的初始化需求进行调整。如果您的应用程序由于复杂的初始化过程而加载时间较长,您可能需要增加此值。

回滚到之前的捆绑包

标题:回滚到之前的捆绑包

每次您上传一个新版本并将其分配到一个频道时,Capgo都会保留这些版本的历史记录。如果您需要回滚一个特定的更新,可以选择这些之前的版本并重新部署到频道。

回滚UI界面

主要的回滚方式是通过回滚界面,这个界面位于Capgo控制台的4号标签(历史记录)中。当您在Capgo控制台中查看频道时,这个标签提供了所有可用版本的全面视图,使您可以轻松选择并回滚到任何之前的版本。

使用历史记录标签回滚的步骤:

  1. 登录到 Capgo控制台.

  2. 导航到“频道”部分。

  3. 点击您要回滚的频道的名称。

  4. 前往频道视图中的第 4 个标签(历史记录)

  5. 在构建历史记录中找到您要回滚到的构建

  6. 选择该构建以将其设置为频道的活动构建

  7. 确认您要回滚到此构建

备选方法:使用冠军图标

标题:备选方法:使用冠军图标

作为第二种方法,您也可以直接从频道视图的第一个标签中回滚,点击频道构建历史记录中任何构建旁边的冠军图标

  1. 在频道视图的第一个标签中找到您要回滚到的构建
  2. 点击该构建旁边的冠军图标以将其设置为频道的活动构建 频道管理选项
  3. 确认您要回滚到此构建

回滚后,配置为监听更新频道的设备下一次检查更新时将接收到之前的版本。回滚的版本将被视为新更新,因此通常的更新流程和条件仍然适用。

加速关键回滚

加速关键回滚

重定向频道通常在下一次设备检查更新时生效。Capgo 通知可以在应用程序处于后台时发送一个静默的更新检查通知。启用更新器集成后,应用程序可以根据其配置的更新模式检查、下载并安装回滚。

这不是强制性命令,仍然依赖于操作系统的后台调度、网络可用性和设备状态。它无法更新离线或强制退出的应用程序,因此无法保证在所有设备上在固定的时间内完成更新。

要设置此路径,请遵循 通知:启用静默更新检查.

Section titled “加速关键回滚”

要解除一个频道的绑定:

  1. 在Capgo控制台中,导航到该频道。

  2. 单击当前构建旁边的“解除绑定”按钮。

  3. 确认您要解除该频道的绑定。

一旦频道解除了绑定,它就不会再分发任何新更新。配置为该频道的设备将保持在其当前构建状态,直到频道再次与一个构建绑定。

如果您已经确定了一个更新的问题,但还不知道要回滚到哪个构建,解除频道的绑定是很有用的。这样您就有时间调查而不必推出更多的更新。

强制内置包

强制内置包

在更严重的情况下,您可能希望将频道上的所有设备重置回最初与您的原生二进制文件打包的Web构建。这被称为“内置包”。

要在频道上强制内置包:

  1. 在Capgo控制台中,导航到该频道。

  2. 单击“内置包”按钮。

  3. 确认您是否要强制使用内置包。

当您强制使用内置包时,所有已配置到该频道的设备在下一次更新检查时将会回滚到原始打包的Web构建。这不论他们当前的构建是什么都一样。

与回滚到特定之前的构建相比,这是一个更激进的回滚选项,因为它会丢弃自应用上次发布到应用商店以来发布的所有实时更新。

监控和应对问题

标题:监控和应对问题

为了快速捕捉问题并最小化有问题更新的影响,监控您的发布并应对问题的计划非常重要。

一些策略包括:

对于仍然限于小组的发布,使用 渐进式发布 暂停更新或清除目标前更改整个频道的稳定包。

  • 立即在发布更新后监控崩溃报告和用户反馈。
  • 使用分阶段发布或分阶段频道系统在较小的用户组中测试更新,然后进行大规模发布。
  • 明确决定何时回滚、解除关联或强制使用内置包,以及谁有权利进行此操作。
  • 如果适当,向用户说明问题和解决方案。

通过结合监控和快速管理问题更新的能力,您可以提供一个不断改进的应用体验,同时最小化对用户的干扰。

如果您正在使用 回滚 来规划回滚和版本控制,连接它到 版本目标管理 为 __CAPGO_KEEP_0__ Live Updates 中的版本目标设置细节 更新行为 为 __CAPGO_KEEP_0__ Live Updates 中的更新行为设置细节 捆绑包 为 __CAPGO_KEEP_0__ Live Updates 中的捆绑包设置细节 Capgo Live Updates for the product workflow in Capgo Live Updates, and 为 Capacitor Live Updates 的产品工作流程 Capacitor Live Updates 的回滚策略