跳过主要内容

使用Capgo进行回滚管理指南

了解如何以流程化的更新、自动恢复选项和稳定性最佳实践来高效地管理应用程序回滚

马丁·多纳迪厄

马丁·多纳迪厄

内容营销人员

使用Capgo进行回滚管理指南

回滚管理对于修复 应用程序更新 会导致崩溃或错误。有 Capgo你可以快速恢复到稳定的版本,无需等待应用商店的批准。具体来说是 Capgo 简化了回滚管理:

  • 快速恢复: 回滚平均仅需114毫秒。
  • 自动更新: 无需人工干预 - Capgo 会自动处理更新和回滚。
  • 安全流程: 全程加密确保安全更新。
  • 易于设置: 安装 @capgo/capacitor-updater package 和配置您的应用仅需几分钟。
  • 更新频道: 使用 staging、beta 和 production 环境来控制更新。
  • 手动 & 自动回滚: 根据您的需求选择手动或自动恢复。

快速设置步骤:

  1. : 安装并同步您的项目。 @capgo/capacitor-updater : 配置更新。
  2. : 设置更新频道(staging、beta、production)。 capacitor.config.json package and configure your app in minutes.
  3. Update Channels
  4. 测试回滚功能在生产部署之前。

Capgo 确保您的应用程序始终稳定和友好,立即解决问题。无论您是否喜欢手动控制或自动触发,Capgo 都提供了可靠的安全网来保护您的 Capacitor 应用程序。

设置 Capgo 为回滚管理

Capgo 回滚管理界面

要有效地管理回滚与 Capgo,您需要安装其核心包,配置应用程序的设置,并设置更新通道。这确保了顺利的部署和可靠的安全网来处理问题。

安装和配置 Capgo

首先添加 @capgo/capacitor-updater 包到您的 Capacitor 项目本包管理应用程序的更新和回滚。 在项目目录中运行以下命令:

npm install @capgo/capacitor-updater
npx cap sync

安装后,更新您的 capacitor.config.json 文件以启用更新功能。 以下是示例配置:

{
  "plugins": {
    "CapacitorUpdater": {
      "autoUpdate": true,
      "updateUrl": "https://api.capgo.app/updates",
      "privateKey": "your-private-key-here",
      "version": "1.0.0",
      "directUpdate": false
    }
  }
}
  • 设置 autoUpdatetrue 上下文:实时更新产品页面。 角色:短的 UI 标签或导航项。 消息键 `live_update_dynamic_label_to` (实时更新动态标签到)。
  • 允许自动更新。 directUpdate 保持 false 作为

Next, link your app to Capgo’s update system. Sign up at 接下来,链接您的应用程序到 capgo 的更新系统。 请注册在 capgo.app然后注册您的应用程序使用 CLI:

npx @capgo/cli app add your-app-id

本步骤将您的项目连接到 Capgo,启用版本跟踪和用户分段,以便实现精确的回滚管理。

完成初始设置后,您可以配置更新通道来控制和监控部署。

设置更新通道

更新通道有助于管理更新的分发,使其能够进行彻底的测试和快速回滚。

要创建通道,请使用 Capgo 的 CLI 工具。首先设置三个关键通道以实现高效的回滚管理:

npx @capgo/cli channel add staging
npx @capgo/cli channel add beta  
npx @capgo/cli channel add production

每个通道都有特定的目的:

设置 目的 上下文:Capgo营销网站。角色:短的UI标签或导航项。消息键 `subprocessors_table_purpose` (子处理程序表目的)
示例值 通道名称 prod, beta, staging
版本模式 定义允许的版本格式 1.0.*
用户访问 指定哪些用户接收更新 specific-group-id
更新频率 确定更新何时分发 即刻, 预定

对于生产环境, 使用稳定的版本模式, 如 1.0.*而测试环境可以使用更灵活的格式

为了进一步优化回滚管理, 设置用户分段。 这样可以在回滚时针对特定组进行目标, 从而最小化干扰, 并有效解决问题

通过定义基于错误率、性能指标或用户反馈的触发器来自动回滚。这些触发器确保问题能够及时得到解决,而无需人工干预。

在发布到生产环境之前,测试回滚功能在预发布渠道中。这种步骤确保回滚系统在真实世界条件下能够正常工作。

最后,将更新渠道与CI/CD管道 CI/CD管道整合起来。这一自动化流程简化了部署和回滚,保持了工作流的高效,同时也为未知问题提供了安全保障。

如何使用Capgo执行回滚

Capgo的更新验证系统确保应用程序保持稳定,而回滚功能则在此基础上提供了手动和自动恢复选项。了解如何有效地使用这些方法可以帮助您快速恢复功能,当出现问题时。

手动回滚步骤

手动回滚提供了选择并应用稳定版本的控制权,使您能够在采取行动之前评估情况。

首先,在您的 capacitor.config.json 文件中设置 autoUpdatefalse。 这样就可以停止 Capgo 自动管理更新,给您完全控制更新过程的权利。

一旦自动更新被禁用,使用 CapacitorUpdater.download() 方法来获取所需的版本并 CapacitorUpdater.set() 来应用它。以下是一个示例:

import { CapacitorUpdater } from '@capgo/capacitor-updater'

const version = await CapacitorUpdater.download({
  url: 'https://github.com/Cap-go/demo-app/releases/download/0.0.4/dist.zip',
})
await CapacitorUpdater.set(version); // Sets the new version and reloads the app

使用 CapacitorUpdater.set()下载的版本后,应用将自动重新加载并恢复捆绑包。为了最终完成回滚过程,请始终调用 CapacitorUpdater.notifyAppReady() 来确认更新是稳定的。

“如果没有调用此方法,则您的应用程序将回滚到上一次成功的版本(或内置捆绑包)” [2]

如果确认步骤被跳过,Capgo 将假设回滚失败并可能再次回滚到最后一次工作版本。

在需要更快速行动的情况下,自动回滚可以在不需要人工干预的情况下处理恢复。

自动回滚触发器

自动回滚是理想的选择,尤其是在需要持续监控的环境中。它们通过检测问题并自动恢复到稳定版本来最小化停机时间。这些触发器基于健康检查和预定义的错误阈值。

设置健康检查以监控应用程序的关键功能,例如用户身份验证或数据加载。当这些检查检测到问题时,自动触发器可以立即回滚到稳定的版本。

使用性能指标定义错误阈值,以确定是否需要回滚。以下表格突出了需要考虑的关键组件:

组件 目的 上下文:Capgo营销网站。角色:短UI标签或导航项。消息键`subprocessors_table_purpose`(子处理程序表目的)
实施提示 版本控制 上下文:Capgo营销网站。角色:短UI标签或导航项。消息键`version_control`(版本控制)
跟踪部署历史 监控进展和结果 错误阈值
定义回滚触发器 恢复步骤概述 立即处理问题的工作流设置

在应用程序环境和风险承受能力之间,决定是否使用手动或自动回滚

“A rollback is redeploying a prior version of the code. It is the 在大多数情况下,回滚是最好的首选选项,因为在<5分钟内它可以结束负面用户影响,并且不排除您也可以执行其他选项 在生产环境中,稳定性和安全性至关重要,手动回滚允许进行细致的评估和控制。另一方面,测试和阶段环境可能更适合自动回滚的速度和效率。结合两种方法确保平衡的策略 - 自动触发器处理紧急故障,而手动回滚则保留用于复杂问题,需要人类监督 [3]

回滚管理最佳实践

有效的回滚策略通过结合渐进式部署和详细的回滚后分析来保护用户免受不稳定更新的影响

分阶段发布和风险减少

分阶段发布作为应用程序更新的防护措施,避免一次性推送更新到所有用户。相反,更新逐渐发布到较小的用户组。首先选择代表1-5%的用户组。确保这个用户组包括各种设备类型、操作系统和使用行为的多样化组合。监控他们的性能24-48小时,以捕捉任何早期迹象

分阶段发布和风险减少

功能标志可以在这里成为救命稻草。它们允许您立即禁用特定功能而无需进行完整回滚 [4].

制定明确的标准来通过回滚阶段。例如,您可能会根据设备稳定运行的小时数或崩溃阈值来做出决定。一个好的经验法则是在扩大回滚之前,目标至少稳定1,000个设备小时。工具,如Capgo的更新频道,会使此过程更容易,让您可以将更新分配给特定的用户组,例如beta测试者或早期采用者,从而确保对谁和何时更新有精确的控制

以下是一个阶段回滚的例子

回滚阶段 用户百分比 监控时间 成功标准
初始测试 1–5% 24–48小时 崩溃率小于0.1%且正常性能
早期采用者 10–20% 48–72小时 稳定性能和积极的用户反馈
通用发布 100% 持续发布 无关键问题和持续性能

回滚后监控和诊断

完成回滚后,进行彻底的监控以确认其成功并防止未来问题的发生。

设置实时警报并跟踪关键性能指标,如崩溃率、应用启动时间、内存使用率和网络性能。这些指标对于评估稳定性和用户体验至关重要。在生产环境中,目标是达到99.9%的基准稳定性,并确保您立即收到性能低于此水平的警报。

继续监控至少72小时以确认应用已返回稳定状态。重点关注直接影响用户的指标,如应用启动速度或特性响应速度。

使用清晰的升级程序的错误跟踪工具。自动化报告,涵盖回滚事件的原因、受影响用户和解决时间,可以帮助您的团队从每个事件中学习。详细记录这些事件,包括触发器、解决步骤和所学的经验,对于改进流程和培训团队至关重要。

继续监控至少72小时以确认应用已返回稳定状态。重点关注直接影响用户的指标,如应用启动速度或特性响应速度。

进步式监控方法也可以有效。立即在回滚后进行密集的观察,然后随着稳定性的确认逐渐减少。这一方法确保了充分的监督和资源利用率的平衡。

排查回滚问题

回滚可能会遇到一些问题,影响用户体验。快速识别和解决这些问题是保持系统正常运作的关键。

修复失败的校验和验证

校验和验证失败是回滚过程中可能遇到的更严重的问题。这表明更新文件在传输或存储过程中可能被损坏或篡改。要解决这个问题:

  • 检查源文件和回滚包的完整性。
  • 如果需要,请从版本控制系统重新下载或重新生成包。

Capgo的端到端加密帮助在传输过程中保护文件,但在本地存储中仍然可能出现问题。如果多个用户受到影响,请清除本地缓存以删除受损的临时文件。您可以通过Capgo的更新通道自动化此过程,通过推送一个小的配置更新强制下载最新的文件。

另外,还要考虑校验下载时的网络问题。校验和问题解决后,应转向版本冲突和网络挑战。

处理版本冲突和网络问题

版本冲突会发生在应用程序的不同部分没有正确同步。如果发生这种情况,请立即回滚到最后一个稳定版本以最小化中断。使用Capgo的更新频道,可以将回滚限制为特定用户组进行测试,然后在更广泛的范围内进行回滚。

详细的日志记录对于诊断这些冲突至关重要。查找错误,如API版本不匹配或数据库架构问题,以确定问题是否出在后端更改、客户端更新或两者中。

另一方面,网络问题可能会完全阻止回滚尝试。像连接超时、SSL证书错误或代理配置错误这样的问题是常见的罪魁祸首。要解决这些问题:

  • 确保所有更新端点、证书和版本标识符都是最新的。
  • 在用户遇到问题的相同环境中测试网络连接。

在企业环境中,代理和防火墙规则可能会干扰更新。与企业客户合作,确认Capgo的更新端点已在白名单中,并且 安全策略 不会阻止回滚过程。

测试场景 实施方法 成功标准
版本不匹配 部署不兼容的包版本 回滚自动激活
损坏的包 上传损坏的更新 检测错误并恢复系统
网络故障 模拟网络故障 从最后一个稳定版本恢复
API 超时 在 API 响应中引入延迟 使用fallback机制处理延迟

定期测试版本不匹配、损坏的包、网络故障和API超时等场景,确保回滚机制在真实世界挑战面前准备就绪。这一主动的方法在生产环境出现问题时会增强信心。

结论

拥有可靠的回滚策略对于维持应用的稳定性至关重要 Capacitor 应用Capgo 提供了使此过程变得顺畅的工具。它结合了高效的更新管理和强大的安全措施,以确保您的应用始终可靠且受保护。 __CAPGO_KEEP_0__ 的独特之处在于其 一键回滚功能

Capgo’s standout feature is its 端到端加密来保护您的应用程序在生产环境中。 “__CAPGO_KEEP_0__ 是开发人员必须拥有的工具。避免对 bug 修复进行审查是黄金的。” - Bessie Cooper __CAPGO_KEEP_0__ 应用

Capgo 应用 [1]

这些功能简化工作流程并提供即时解决方案,应对挑战。通过CI/CD和semantic-release自动化,Capgo简化了回滚过程。无论您面临的是校验和验证错误、版本不符还是网络中断,Capgo的基础设施和监控工具都有助于您解决问题,避免问题升级到用户面前。

对于生产中管理Capacitor应用的团队,Capgo提供了安全性、可靠性和简洁性所需的rollback策略。已有超过2,000个应用程序信赖该平台,您选择的解决方案既提高了开发人员的效率,又提高了用户满意度。 [1].

当问题发生时,Capgo确保您可以立即解决问题。

常见问题

::: faq

Capgo如何在回滚期间保持应用程序更新的安全性?

Capgo采用 端到端加密 以保护应用程序更新的每个阶段,从创建到交付。这样就确保了更新始终受到保护,仅限于授权用户通过严格的访问控制访问。

为了确保更新的完整性,Capgo使用 加密检查 如散列和数字签名。这些工具确认更新未被篡改。如果出现问题,平台的自动回滚功能允许您快速安全地切换到较早的版本。这些功能共同确保您的应用程序更新既安全又可靠。 :::

::: faq

使用 Capgo 自动回滚功能的好处是什么?

自动回滚功能 Capgo 提供了比手动回滚更快、更可靠、更无错误的替代方案。更新后出现问题时,回滚可以快速将应用程序恢复到稳定版本,减少停机时间并保持用户体验的流畅性。

自动回滚的关键是它可以从等式中移除人类错误。按照预定义的最佳实践,它每次都能保证一致性。这不仅节省了宝贵的时间,还促进了应用程序管理的稳定和高效。对于使用 Capacitor 的开发人员,自动回滚提供了一个无压力、可靠的方式来处理更新。 :::

::: faq

如何在发布更新到生产环境之前测试 Capgo 回滚功能?

要有效地测试 Capgo 回滚功能,请先设置一个 测试环境。这样可以在控制环境中测试更新,避免在发布前出现问题。请邀请 测试者 为了尽早发现潜在问题并确保实时监控 实时监控 跟踪性能并快速检测错误。还要定义明确的 回滚触发器,例如达到某个错误率或接收特定用户反馈,以便您知道何时需要回滚更新。

在发布任何更新之前,彻底测试回滚过程。确保它可以无缝地返回到之前的稳定版本而不会引起额外的问题。模拟失败场景是另一个验证回滚机制正常工作的好方法。最后,利用Capgo的 分析工具 来监控更新性能和用户参与度。这些洞察力可以指导您在何时进行回滚时做出明智的决定。

继续阅读:Capgo的回滚管理指南

如果您正在使用__CAPGO_KEEP_0__的回滚管理指南 Rollback Management with Capgo: Guide __CAPGO_KEEP_0__ 回滚 回滚的实现细节 版本目标 版本目标 更新行为 更新行为 Capgo 实时更新 for the product workflow in Capgo Live Updates.

使用Capacitor的实时更新

当web层面的bug出现时,通过Capgo来快速修复,而不是等待几天的app store审批。用户在后台接收更新,而native层面的变化仍然在正常的审批路径中。

从Martin那里获得人性化的支持

立即开始

最新博客

Capgo为您提供创建真正专业的移动应用所需的最佳见解。