跳过主要内容

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

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

马丁·多纳迪尤

马丁·多纳迪尤

内容营销

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

想简化 应用程序更新 和版本控制? 语义版本控制(SemVer)Capgo的即时更新功能使得管理 Capacitor 更容易和更快。这里是如何做到的:

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

    • 主要版本: 用于重大变更。
    • 次要版本: 对于向后兼容的新功能。
    • PATCH: 修复BUG。
  • 为什么要使用Capgo的SemVer?

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

    1. 安装Capgo的更新插件。
    2. 配置您的应用程序版本在 capacitor.config.json 和其他文件。
    3. 使用您的API密钥进行初始化。
    4. 使用 Capgo CLI 来打包和上传更新。
  • 管理版本和频道:

    • 使用单独的频道(例如,“beta”用于测试,“production”用于稳定发布)。
    • 控制更新策略(自动更新补丁,手动批准重大更改)。
    • 回滚选项用于失败的更新。
  • 部署流程:

    • 更新版本号遵循SemVer规则。
    • 在部署之前进行彻底的测试。
    • 使用 CLI 命令上传和分发更新。

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

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

语义版本控制 | 提升水平

Capgo __CAPGO_KEEP_0__

Capgo Live Update Dashboard Interface

Capgo OTA 更新和版本控制的实时更新仪表板界面

这里是如何设置 __CAPGO_KEEP_0__ 来管理 OTA 更新和版本控制的。

初始设置步骤: Capgo 升级插件:

npm install @capgo/capacitor-updater  
npx cap sync

确保您的 capacitor.config.json context

{ 
  "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)

Once configured, initialize Capgo with your API key:

npx @capgo/cli@latest init YOUR_API_KEY

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

快速参考表格: 设置阶段 验证步骤
安装 安装插件并同步 检查 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)管理应用程序版本,格式为 MAJOR.MINOR.PATCH。以下是如何工作的:

  • 主要版本(X.0.0): 对于破坏兼容性的更改,增加MAJOR数字。
  • 次要版本(1.X.0): 对于保持兼容性的新功能,增加MINOR数字。
  • 修补版本(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更新部署

更新准备

首先更新 context: Capgo营销网站. 角色: 短UI标签或导航项. 见于: page trust.astro. 消息键 `and` (And). __CAPGO_KEEP_0__.config.json capacitor.config.json__CAPGO_KEEP_0__

  • Bug Fix: 增加PATCH版本号(例如,1.0.1 → 1.0.2)
  • New Feature: 增加MINOR版本号(例如,1.0.0 → 1.1.0)
  • Breaking Change: 增加MAJOR版本号(例如,1.0.0 → 2.0.0)

Thoroughly test your build and confirm the app communicates with the server using notifyAppReady.

Next, decide on your update strategy. 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自动化集成。

“我们实行敏捷开发,@Capgo 在持续交付给用户方面至关重要!”

问题解决和提示

版本管理问题

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

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

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

  • 设置 autoUpdatefalse 上下文:产品页面:实时更新产品页面。角色:短的UI标签或导航项。消息键`live_update_dynamic_label_to`(实时更新动态标签到)。
  • 在开发期间。
  • 重新安装它使用修正的版本。
  • 一旦稳定后,重新启用自动更新。

对于主要版本更新,使用标志并监听事件来正确处理更新: disableAutoUpdateBreaking 通过结合这些配置项和良好的团队实践,您可以维持版本一致性并减少错误。 majorAvailable 团队版本控制

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

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

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

以下是确保一致性的方法:

定义一个 branch 作为主仓库 [4]

flag

  • event branch 作为真实来源。
  • 分别使用Capgo开发和生产环境的渠道。
  • 通过CI/CD管道自动上传版本。
  • 以清晰详细的提交信息记录所有code的变更。

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

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

更新恢复步骤

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

  1. 回滚到之前的稳定包
  2. 任何修复的新版本号都应递增(注意:删除后版本号不能重复使用) [2].
  3. 在应用启动时验证更新,以确保它们正常工作。

Capgo的更新器旨在处理中断。例如,如果服务器不可达或更新被删除,应用将继续正常运行 [3].此外,失败的网络请求将在下一次应用启动时自动重试 [3].这种内置的弹性降低了停机时间并确保了更平滑的运作

概要

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

开发者的话

“我们推出了 Capgo OTA更新 在我们的用户群+5000人中,生产环境中运营非常顺畅。我们看到几乎所有用户在OTA部署到@Capgo后几分钟内就能保持最新状态。- colenso [1]

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

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

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

继续阅读How to Use Semantic Versioning with Capgo OTA Updates

如果您正在使用 如何使用Capgo OTA Updates 来规划回滚和版本控制,连接它 回滚 回滚的实现细节 版本目标 版本目标 更新行为 更新行为 Capgo 实时更新 for the product workflow in Capgo Live Updates.

Capacitor 应用实时更新

当 web 层 bug 活跃时,通过Capgo将修复推送,而不是等待几天的应用商店审批。用户在后台接收更新,而原生变化保持在正常审批路径中。

来自 Martin 的人性化支持

立即开始

最新博客文章

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