跳过内容

回滚

虽然 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() 以确认更新加载成功。这个方法表明:

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

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

  1. __CAPGO_KEEP_0__ 将会:
  2. 检测到更新未正确初始化
  3. 自动切换回上一个工作包装
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个标签(历史记录)中。当您查看频道时,这个标签提供了所有可用构建的全面视图,使您可以轻松选择并回滚到任何以前的版本。

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

  1. 登录到 Capgo控制台.

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

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

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

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

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

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

使用皇冠图标的另一种方法

使用皇冠图标的另一种方法

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

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

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

加速关键回滚

加速关键回滚

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

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

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

加速关键回滚

To unlink a channel:

  1. 进入 Capgo 控制台,找到该频道。

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

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

一旦频道解绑,任何新更新都不会被分发。配置为该频道的设备将保持在当前构建状态,直到频道再次链接到一个构建。

如果您已经确定了一个问题,但还不知道要回滚到哪个构建,解绑频道可以给您时间来调查,而不推出更多更新。

强制内置捆绑包

强制内置捆绑包

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

强制频道上的内置捆绑包:

  1. 进入 Capgo 控制台,找到该频道。

  2. 点击“内置捆绑包”按钮。

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

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

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

监控和应对问题

标题:监控和应对问题

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

一些策略包括:

对于仍然限于小规模的发布,使用 渐进式发布 为了暂停暴露或清除目标之前更改整个频道的稳定包。

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

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

继续从回滚中

标题:继续从回滚中

如果您正在使用 回滚 来规划回滚和版本控制,连接它与 版本目标管理 为 __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 的产品工作流程 for the practical context in Rollback Strategies for Capacitor Live Updates.