跳过主要内容

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

Learn how to streamline app updates and version control using Semantic Versioning with Capgo's OTA updates for Capacitor apps.

如何使用语义版本控制与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): 对于保持兼容性的新功能,增加次要数字。
  • 修补版本(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__CAPGO_KEEP_0__.config.json

  • 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 在持续交付给用户方面是 mission-critical!”

问题解决和提示

版本管理问题

在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]

使用标志和监听事件来正确处理更新:

  • 通过结合这些配置和良好的团队实践,您可以维持版本一致性并减少错误。 团队版本控制 作为真实来源。
  • 分别为开发和生产环境创建独立的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更新 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]。它的可定制频道确保更新到达正确的用户在正确的时间

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

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

如果您正在使用 How to Use Semantic Versioning with Capgo OTA Updates 来规划回滚和版本控制,连接它 回滚 回滚的实现细节 版本目标 Page/area: Capgo solutions marketing page. Role: Section or page heading. Seen in: page solutions/version-targeting.astro. Message key `solutions_version_targeting_title` (Solutions Version Targeting Title). | Page/area: Capgo solutions marketing page. Role: Short UI label or navigation item. Seen in: page solutions/version-targeting.astro. Message key `solutions_version_targeting` (Solutions Version Targeting). 回滚的实现细节 更新行为 更新行为的实现细节Capgo Live Updates Capgo 实时更新

Capacitor 应用实时更新

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

来自马丁的人性化支持

立即开始

最新博客文章

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