跳过内容

回滚

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

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

自动回滚保护

自动回滚保护

Capgo 包含一个内置的安全机制来保护您的用户免受更新中断的影响。如果在方法被调用之前发生 JavaScript 错误,插件将自动回滚到上一个可用的版本。 notifyAppReady() 如何自动回滚

当下载并应用新更新时,__CAPGO_KEEP_0__ 期望您的应用在可配置的时间框架内调用

确认更新加载成功的方法

When a new update is downloaded and applied, Capgo expects your app to call notifyAppReady() 应用程序的核心功能正在工作

  • 更新是安全的
  • 如果
  • 由于 JavaScript 崩溃或关键错误未被调用,__CAPGO_KEEP_0__ 将:

检测到更新未能初始化 notifyAppReady() is not called due to a JavaScript crash or critical error, Capgo will:

  1. properly
  2. 自动恢复到上一个工作的捆绑包
  3. 标记问题的更新为失败,以防止它再次被应用
import { CapacitorUpdater } from '@capgo/capacitor-updater'
// Call this after your app has successfully initialized
await CapacitorUpdater.notifyAppReady()

这种自动保护有助于确保,即使您意外推送了一个破坏性更新,用户也不会被困在一个不可用的应用中。

您可以配置 Capgo 等待的时间 notifyAppReady() 设置超时时间以便被调用 appReadyTimeout In您的Capacitor配置中:

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

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

回滚到上一个捆绑包

标题:回滚到上一个捆绑包

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

回滚UI界面

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

使用历史记录标签回滚:

  1. 登录到 Capgo控制台.

  2. 进入“频道”部分。

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

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

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

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

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

使用皇冠图标的替代方法

标题:使用皇冠图标的替代方法

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

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

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

解除频道绑定

频道解绑

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

要解除频道绑定:

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

  2. 单击当前版本旁边的“解绑”按钮.

  3. 确认您想解除频道绑定.

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

如果您已经确定了一个更新的问题,但还不知道要回滚到哪个构建版本,那么解除频道绑定是有用的。解除频道绑定给您时间来调查,而不推送出更多的更新。

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

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

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

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

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

当您强制内置包时,所有配置到该频道的设备将在下一次更新检查时重置回原始打包的Web构建。这无论它们当前的构建版本如何都发生。

这比回滚到特定之前的构建版本更具侵入性,因为它丢弃了自上次发布应用到应用商店以来发布的所有实时更新。

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

一些策略包括:

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

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

如果您正在使用 回滚 来规划回滚和版本控制,连接它与 版本目标 来获取版本目标的实现细节 更新行为 来获取更新行为的实现细节 打包 来获取打包的实现细节 Capgo 实时更新 来获取Capgo 实时更新的产品工作流程 回滚策略 for Capacitor 实时更新 为回滚策略 for Capacitor 实时更新提供实用上下文。