跳过内容

回滚

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

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

自动回滚保护

自动回滚保护

Capgo 包括一个内置的安全机制来保护您的用户免受破坏的更新。发生 JavaScript 错误之前,如果方法未被调用,插件将自动回滚到上一个工作版本。 notifyAppReady() 自动回滚保护是如何工作的

自动回滚保护是如何工作的

Automatic Rollback Protection is how it works

当新更新下载并应用后,Capgoexpects您的应用程序在可配置的时间框架内调用 notifyAppReady() 在可配置的时间框架内确认更新加载成功的方法

  • JavaScript包加载无关键错误
  • 您的应用程序的核心功能正常
  • 更新安全

如果 notifyAppReady() 由于JavaScript崩溃或关键错误未调用Capgo,

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

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

您可以配置Capgo等待多久 notifyAppReady() 在您的 __CAPGO_KEEP_0__ 配置中来配置 __CAPGO_KEEP_0__ 等待的时间 appReadyTimeout 在您的Capacitor配置中:

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

The appReadyTimeout 复制到剪贴板

回滚到上一个捆绑包

回滚到上一个捆绑包

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

回滚UI界面

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

使用历史记录标签回滚:

  1. 登录到 Capgo控制台.

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

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

  4. 在频道视图中,转到第4个标签(历史记录)。

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

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

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

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

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

作为第二种方式,您也可以直接从频道视图的第一个标签页回滚到任何构建中间的皇冠图标:

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

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

加速关键回滚通知

标题:加速关键回滚通知

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

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

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

解除频道绑定

标题:解除频道绑定

如果您想暂时停止某个频道的更新以调查问题,可以解除该频道与其当前构建的绑定。

要解除频道,请执行以下步骤:

  1. 导航到频道的Capgo控制台。

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

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

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

如果您已经确定了一个更新的问题,但尚未确定要回滚到哪个构建, unlinking 频道可以给您时间来调查而不推出进一步的更新。

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

要在频道上强制内置包,请执行以下步骤:

  1. 导航到Capgo控制台中的频道。

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

  3. 确认您要强制内置包。

当您强制内置包时,所有配置为该频道的设备将在其下一次更新检查时重置回原始打包的Web构建。这不论它们当前的构建是什么都发生。

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

监控和应对问题

监控和应对问题

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

一些策略包括:

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

  • 监控崩溃报告和用户反馈立即在发布更新后
  • 使用分阶段发布或分阶段渠道系统来在较小的用户群中测试更新,然后在广泛发布
  • 明确决定何时回滚、解除关联或强制使用内置包,并确定有权执行此操作的人
  • 向用户说明问题和解决方案(如果适用)

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

继续使用回滚

标题:继续使用回滚

如果您正在使用 回滚 来规划回滚和版本控制,连接它到 版本目标 context Page/area: Capgo solutions marketing page. Role: Section or page heading. Seen in: page solutions/version-targeting.astro. Message key `solutions_version_targeting_title` (Solutions Version Targeting Title). | Page/area: Capgo solutions marketing page. Role: Short UI label or navigation item. Seen in: site header, component SolutionsMegaMenu.astro, page solutions/version-targeting.astro. Message key `solutions_version_targeting` (Solutions Version Targeting). 为__CAPGO_KEEP_0__ Live Updates的更新行为细节 包 为包的实现细节 Capgo 实时更新 为Capgo Live Updates的产品工作流程 为Capacitor Live Updates的回滚策略 为Capacitor Live Updates的实际上下文