跳过内容

回滚

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

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

自动回滚保护

“自动回滚保护”

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

当下载并应用新更新时,Capgo期望您的应用程序调用 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() 通过设置 appReadyTimeout 在您的Capacitor配置中:

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

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

Every time you upload a new build and assign it to a channel, Capgo keeps a history of those builds. If you need to revert a specific update, you can select one of these previous builds to redeploy to the channel.

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

The primary way to roll back is through the rollback interface, which is located in the 4th tab (History) when viewing a channel in the Capgo Dashboard. This tab provides a comprehensive view of all available builds for the channel, allowing you to easily select and revert to any previous version.

使用历史记录标签回滚:

  1. 登录到 Capgo 控制台.

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

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

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

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

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

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

备选方法:使用皇冠图标

标题为“备选方法:使用皇冠图标”

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

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

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

解除频道绑定

标题:解除频道绑定

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

要解除频道绑定:

  1. 进入Capgo控制台

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

  3. 确认要解除绑定

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

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

强制内置捆绑包

标题:强制内置捆绑包

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

要在频道上强制内置捆绑包:

  1. 进入Capgo控制台

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

  3. 确认要强制内置捆绑包

当您强制使用内置捆绑包时,所有已配置为该频道的设备将在下一次更新检查时恢复到原始打包的Web构建。这不论它们当前处于哪个版本。

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

监控和应对问题

标题:监控和应对问题

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

一些策略包括:

  • 监控崩溃报告和用户反馈立即在发布更新后
  • 使用阶段性发布或分阶段频道系统在较小的组上测试更新之前进行广泛发布
  • 拥有明确的决策过程,确定何时回滚,取消关联或强制使用内置捆绑包,以及谁有权做出此决定
  • 告知用户问题和解决方案(如果适用)

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