跳过主要内容

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

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

马丁·多纳迪尤

马丁·多纳迪尤

内容营销人员

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

想简化 应用程序更新 and version control? Semantic Versioning (SemVer) 与 Capgo的即时更新(Over-The-Air, OTA)使得管理 Capacitor 应用程序更容易和更快。以下是具体步骤:

  • Semantic Versioning 基础知识: 版本号遵循以下格式 MAJOR.MINOR.PATCH:

    • MAJOR: 重大更新(不兼容性)
    • MINOR: 新功能(向后兼容)
    • PATCH: For bug fixes.
  • 为什么使用 SemVer 与 Capgo?

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

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

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

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

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

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

语义版本控制 | 提升水平

Capgo 设置指南

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

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

初始设置步骤

首先安装 Capgo OTA 更新器插件:

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)

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

遵循 SemVer 规则可以简化版本管理,确保在所有部署通道上更新更加顺畅。

版本控制指南

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: 增加 PATCH 版本号 (例如 1.0.1 → 1.0.2)
  • 新功能: 增加 MINOR 版本号 (例如 1.0.0 → 1.1.0)
  • 重大变更: 确认应用程序与服务器通信的更新策略

接下来,决定你的 notifyAppReady.

更新策略 . 你可以选择:自动更新

  • : 自动强制执行最低版本要求手动控制
  • update strategy: 指定更新的精确版本要求。
  • Channel-Based: 使用渠道进行测试和阶段性发布。

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自动化。

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

问题解决和建议

版本管理问题

在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
测试环境beta已启用__CAPGO_KEEP_0__-beta
生产环境稳定已启用__CAPGO_KEEP_0__

更新恢复步骤

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

  1. 回滚到上一个稳定包。
  2. 为任何新修复增加版本号(注意:删除后版本号不能重复使用) [2].
  3. 确保应用启动时更新验证正常工作。

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

概要

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

开发者的话

“我们在生产环境中部署了__CAPGO_KEEP_0__ OTA更新 ,我们的用户数量超过5000。我们看到的结果是几乎所有用户在Capgo OTA部署后几分钟内就处于最新状态。” - colenso Capgo [1]

MAJOR.MINOR.PATCH 版本系统使得轻松地与开发者沟通重大更新、新增功能和bug修复 [5]. This is especially helpful for teams managing several releases each week through Capgo’s platform.

特别适用于每周通过Capgo平台管理多个版本的团队 __CAPGO_KEEP_0__的加密解决方案 [1]. Its customizable channels ensure updates reach the right users at the right time.

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

Capacitor 实时更新

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

立即开始

最新博客文章

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