跳过主要内容

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

了解如何使用语义版本号与Capgo的OTA更新来优化Capacitor应用的更新和版本控制

马丁·多纳迪尤

马丁·多纳迪尤

内容营销专家

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

想简化 应用程序更新 和版本控制? 语义版本控制(SemVer)Capgo的Over-The-Air(OTA)更新功能使管理 Capacitor 应用程序更容易和更快。以下是如何做到的:

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

    • MAJOR: 重大变更时使用
    • MINOR: 向后兼容的新功能
    • PATCH: 为什么要使用 SemVer?
  • Why Use SemVer with Capgo?

    • 更智能的版本管理
    • 避免依赖冲突
    • 有序的发布计划
    • __CAPGO_KEEP_0__
  • Capgo 安装 步骤:

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

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

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

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

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

语义版本控制 | 提升水平

Capgo 设置指南

Capgo 实时更新控制台界面

如何轻松设置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

快速参考表:

设置阶段密钥操作验证步骤
安装安装插件并同步检查 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();

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

使用语义版本号管理Capgo

版本号管理

Capgo使用语义版本号(SemVer)管理应用程序版本,格式为 主版本号(X.0.0)语义版本号管理

  • 语义版本号(SemVer)是如何工作的:: 增加主要版本号数以修复不兼容的变更。
  • Minor Version (1.X.0): 增加次要版本号数以添加不影响兼容性的新功能。
  • Patch Version (1.0.X): 增加补丁版本号数以修复不影响兼容性的bug。
Version TypeWhen to IncrementAuto-Update Behavior
Major (X.0.0)对于破坏性API的变更,需要手动审批。Minor (1.X.0)
Major (X.0.0)For new features在 Capgo 中可配置
Patch (1.0.X)For bug fixes通常自动

通过遵循 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 格式 (MAJOR.MINOR.PATCH):

  • Bug 修复: 增加 PATCH 号 (例如,1.0.1 → 1.0.2)
  • 新功能: 增加 MINOR 号 (例如,1.0.0 → 1.1.0)
  • 重大变更: 增加 MAJOR 号 (例如,1.0.0 → 2.0.0)

彻底测试您的构建并确认应用程序与服务器通信使用 notifyAppReady.

接下来,决定您的 更新策略. 您可以选择:

  • 自动更新:自动执行最小版本要求。
  • 手动控制:指定更新的具体版本要求。
  • 频道-基于:使用频道进行测试和阶段性发布。

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 [channelId] [appId]

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

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

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

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

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

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

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

问题解决和建议

Managing semantic versioning in Capgo can sometimes complicate update deployments. To avoid overwriting your development work, configure the following in your capacitor.config.json 在__CAPGO_KEEP_0__中管理语义版本号有时会使更新部署变得复杂。为了避免覆盖开发工作,请在文件中配置以下内容:

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

文件:

  • 设置 autoUpdatefalse 开发期间
  • 卸载应用程序
  • 重新安装它使用修正的版本
  • 重新启用自动更新一旦一切稳定

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

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

通过将这些配置与良好的团队实践结合起来,您可以维护版本一致性并减少错误

团队版本控制

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

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

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

  • 将一个分支定义为 主仓库 以此作为真实来源。
  • 为开发和生产环境各自使用独立的Capgo频道。
  • 通过CI/CD管道自动上传版本。
  • 以清晰详细的提交信息记录所有code变更。

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

环境频道自动更新__CAPGO_KEEP_0__
开发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工具集成,成本也很低,节省了五年内的成本达$26100 [1]. 自定义频道确保更新在正确的时间到达正确的用户

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

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

如果您正在使用 如何使用语义版本控制与Capgo OTA更新 来规划回滚和版本控制,连接它与 回滚 回滚的实现细节在 版本目标 版本目标的实现细节在 更新行为 更新行为的实现细节在 打包 打包的实现细节在 Capgo Live Updates 为产品工作流程在 Capgo Live Updates 中使用。

实时更新Capacitor应用

当web层bug处于活跃状态时,通过Capgo将修复推送给用户,而不是等待几天的应用商店审批。用户在后台接收更新,而原生变化仍然遵循正常的审批流程。

立即开始

最新博客

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