跳过主要内容

如何使用Capgo OTA更新的语义版本控制

学习如何使用语义版本控制和Capgo的OTA更新来简化Capacitor应用的更新和版本控制

马丁·多纳迪尤

马丁·多纳迪尤

内容营销人员

如何使用Capgo OTA更新的语义版本控制

想简化 应用更新 和版本控制? 语义化版本(SemVer) 结合了 Capgo’s Over-The-Air(OTA)更新使管理 Capacitor 应用程序更容易和更快。这里是如何做到的:

  • 语义化版本基础: 版本使用以下格式 MAJOR.MINOR.PATCH:

    • 主版本: 用于重大更改。
    • 次版本: For new features that are backward-compatible.
    • PATCH: For bug fixes.
  • Why Use SemVer with Capgo?

    • 清晰的更新通知。
    • 更智能的版本管理。
    • 避免依赖冲突。
    • 有序的发布计划。
  • Capgo 配置 步骤:

    1. 安装 Capgo 的更新插件。
    2. 配置应用程序的版本号在 capacitor.config.json 和其他文件。
    3. 使用您的API密钥进行初始化。
    4. __CAPGO_KEEP_0__ __CAPGO_KEEP_1__ Capgo CLI 管理版本和频道
  • 使用单独的频道(例如,“beta”用于测试,“production”用于稳定发布)。:

    • 控制更新策略(自动更新补丁,手动批准重大更改)。
    • 回滚选项用于失败的更新。
    • 部署流程:
  • 遵循 SemVer 规则更新版本号。

    • 在部署之前进行彻底的测试。
    • 管理版本和频道
    • 使用 CLI 命令上传和分发更新。

Capgo 确保更新快速可靠地到达用户,提供工具来处理中断并维持稳定性。适合使用 CI/CD 工作流程来自动化更新的团队。

快速提示: 始终测试更新并使用通道来有效管理阶段性发布。

语义版本控制 | 提升水平

Capgo 设置指南

Capgo OTA 更新管理和版本控制实时面板

以下是如何设置 Capgo 来轻松管理 OTA 更新和版本控制的步骤。

初始设置步骤

首先安装 Capgo 升级插件:

npm install @capgo/capacitor-updater  
npx cap sync

确保您的 capacitor.config.json 文件使用语义版本格式:

{ 
  "appId": "com.example.app", 
  "appName": "My App", 
  "version": "1.0.0" 
}

对于较旧的项目,更新版本详细信息在以下位置:

  • package.json (查找 version 字段)
  • android/app/build.gradle (更新 versionName)
  • ios/App/App.xcodeproj/project.pbxproj (更新 CURRENT_PROJECT_VERSION)

配置完成后,使用您的 API 密钥初始化 Capgo:

npx @capgo/cli@latest init YOUR_API_KEY

快速参考表:

设置阶段 Key 动作 验证步骤
安装 安装插件并同步 检查 package.json
配置 设置版本号 验证所有文件
初始化 连接使用 API 密钥 测试连接状态
构建 创建初始包 确认上传成功

版本控制集成

Capgo 与 CI/CD 平台的集成使得 自动更新 变得简单。 支持的平台包括:

如果您正在进行本地开发,为了防止自动更新覆盖您的本地更改,请在您的配置中添加以下内容:

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

这确保了 Capgo 不会覆盖您的本地更改。 一旦您的设置就绪,请上传您的第一个版本:

npx @capgo/cli@latest bundle upload  
npx @capgo/cli@latest channel set production -s default

最后,在您的应用程序的主文件中,通知原生插件关于捆绑包的健康状况:

import { CapacitorUpdater } from '@capgo/capacitor-updater';  
CapacitorUpdater.notifyAppReady();

此设置确保您的应用程序准备好进行平滑的OTA部署和版本管理。

使用Capgo进行语义版本管理

版本号管理

Capgo使用语义版本管理(SemVer)管理应用程序版本,格式为 主版本号.修订版本号.修订号这里是如何工作的:

  • 主版本号(X.0.0): 对破坏兼容性的更改增加主版本号。
  • 修订版本号(1.X.0): 对保持兼容性的新功能增加修订版本号。
  • 修订号(1.0.X): 增加 PATCH 版本号用于修复不影响兼容性的 bug 修复。
版本类型 何时增加 自动更新行为
主版本 (X.0.0) 用于 API 的重大变更 需要手动审批
次版本 (1.X.0) 用于新功能 可在 Capgo 中配置
修订版本 (1.0.X) 用于 bug 修复 通常自动

遵循 SemVer 规则,您可以简化版本管理并确保您的部署通道更新更加Smooth.

版本控制指南

Capgo 允许您通过为不同工作流程阶段设置不同的通道来有效管理部署.

  • 基于通道的版本管理:通过创建测试和生产的独立通道来组织您的部署过程。例如:

    • 使用“beta”通道(例如 1.2.0-beta)进行测试新功能.
    • 保持“生产”通道(例如 1.2.0)用于稳定发布.
    • 添加平台特定通道(例如“ios-hotfix”版本 1.2.1)来解决平台特定问题.
  • 更新策略配置:使用Capgo的配置选项来控制更新应用。例如:

    {
      "plugins": {
        "CapacitorUpdater": {
          "disableAutoUpdate": "minor"
        }
      }
    }

    此设置确保用户自动接收补丁更新,而小版本和重大更新需要手动批准.

  • 版本回滚策略: 使用预发布标识符来维持清晰的回滚选项。这种方法允许您在出现问题时回滚到之前的版本,同时保持所有通道的版本一致。

这些最佳实践使得更新管理、测试新功能和维持应用部署过程的稳定性变得更加容易。

sbb-itb-f9944d2

OTA更新部署

一旦您的版本管理设置就绪,请按照以下步骤有效地部署OTA更新。

更新准备

首先更新 package.jsoncapacitor.config.json。确保版本遵循SemVer格式(主版本.次版本.修订版本):

  • Bug Fix修复BUG
  • PATCH版本号增加(例如1.0.1 → 1.0.2)新功能
  • MINOR版本号增加(例如1.0.0 → 1.1.0)重大变更

MAJOR版本号增加(例如1.0.0 → 2.0.0) notifyAppReady.

Next, decide on your 彻底测试您的构建并确认应用程序与服务器通信使用. You can choose from:

  • Auto-Update更新策略。您可以选择:
  • 手动控制: 指定更新的具体版本要求。
  • 基于频道: 使用频道进行测试和分阶段发布。

Capgo CLI 更新命令

使用 Capgo 的 CLI 来轻松部署更新。以下是如何做到的:

# Initialize Capgo in your project
npx @capgo/cli@latest init [apikey]

# Upload your update bundle
npx @capgo/cli bundle upload [appId]

# Add a new distribution channel
npx @capgo/cli channel add [channelName] [appId]

Capgo 确保安全部署,使用端到端加密和安全密钥管理。

“@Capgo 是一种聪明的方式来进行热 code 推送(而不是像 @AppFlow 那样花所有的钱 🙂”

部署后,您可以通过 Capgo 的控制台监控更新。更新通常在用户打开应用程序后几分钟内就可以到达。整个过程如下:

  • 应用程序检查更新。
  • 在后台下载更新。
  • 当用户退出应用程序时,标记新版本为活跃。
  • 在下一次启动时应用更新。

对于企业级部署,您可能希望将CI/CD自动化集成。

“We practice agile development and @Capgo is mission-critical in delivering continuously to our users!”

问题解决和建议

版本管理问题

在 Capgo 中管理语义版本号有时会使更新部署复杂化。为了避免覆盖开发工作,请在文件中配置以下内容: capacitor.config.json 文件:

{ 
  "plugins": { 
    "CapacitorUpdater": { 
      "autoUpdate": false 
    } 
  } 
}

如果更新失败,以下是您可以采取的措施:

  • 设置 autoUpdatefalse 在开发期间
  • 卸载应用
  • 重新安装使用修正的版本。
  • 一旦稳定后,重新启用自动更新。

对于主要版本更新,使用 disableAutoUpdateBreaking 标志并监听 majorAvailable 事件来正确处理更新:

CapacitorUpdater.addListener('majorAvailable', (info) => {
  console.log(`Major update available: ${info.version}`);
  // Add your update prompt logic here
});

通过结合这些配置和良好的团队实践,您可以维持版本一致性并减少错误。

团队版本控制

一旦个人更新被管理后,团队需要建立强大的版本控制实践。

“Testing each change before merging it with the main repository will reinforce stability and avoid costly errors” [4]

测试每次更改之前将其合并到主仓库中将加强稳定性并避免昂贵的错误“

  • 以下是确保一致性的方法: 将一个分支定义为 作为真实来源。
  • 分别为开发和生产环境创建不同的Capgo渠道。
  • 通过CI/CD管道自动上传版本。
  • 以清晰详细的提交信息记录所有code变更。

对于更大的团队,以下版本管理矩阵可以帮助组织更新:

环境 渠道 自动更新 版本模式
开发 dev 禁用 0.x.x
测试环境 测试版 已启用 x.x.x-beta
生产环境 稳定 已启用 x.x.x

更新恢复步骤

即使采取了预防措施,更新也可能失败。如果发生这种情况,请遵循以下恢复步骤:

  1. 回滚到上一个稳定包
  2. Increment __CAPGO_KEEP_0__ version numbers for any new fixes (note: version numbers cannot be reused after deletion) [2].
  3. Verify updates during app startup to ensure they work as expected.

Capgo的更新器是为了处理中断而设计的。例如,如果服务器无法访问或更新被删除,应用程序将继续正常运行 [3].此外,在下一次应用程序启动时,失败的网络请求会自动重试 [3].内置的弹性降低了停机时间并确保操作更加smooth

Summary

使用Capgo和语义版本控制,Capacitor应用程序的OTA更新效率提高了。通过947.6亿次更新和1,400个生产应用程序使用此系统 [1],部署过程效率提高了81% [1].此设置允许开发者快速推送更新并在受控的方式进行,绕过应用商店延迟

Here’s what developers are saying:

“我们推出了 Capgo OTA更新 in production for our user base of +5000. We’re seeing very smooth operation almost all our users are upto date within minutes of the OTA being deployed to @Capgo.” - colenso [1]

MAJOR.MINOR.PATCH 版本系统使得轻松地与用户沟通重大更新、新功能和 bug 修复 [5]通过 Capgo 平台管理多个每周发布的团队也会发现这尤其有用

Capgo 的 加密解决方案,与 CI/CD 工具集成,成本也很友好 - 五年内可以节省 26,100 美元 [1]其可定制的频道确保更新在正确的时间到达正确的用户

“We practice agile development and @Capgo is mission-critical in delivering continuously to our users!” - Rodrigo Mantica [1]

我们实践敏捷开发,@Capgo 在持续交付给用户方面是 mission-critical!” - Rodrigo Mantica

从 How to Use Semantic Versioning with __CAPGO_KEEP_0__ OTA Updates How to Use Semantic Versioning with Capgo OTA Updates How to Use Semantic Versioning with __CAPGO_KEEP_0__ OTA Updates 来计划回滚和版本控制,连接它 回滚 回滚的实现细节 版本目标 版本目标的实现细节 更新行为 更新行为的实现细节 打包 打包的实现细节 Capgo 实时更新 Capgo 实时更新的产品工作流

Capacitor 应用程序的实时更新

当有一个 web层级别的 bug 活跃时,通过Capgo将修复推送,而不是等待几天的应用商店批准。用户在后台接收更新,而本机更改保持在正常的审查路径中。

立即开始

最新博客文章

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