了解Capacitor应用中的版本标签的基本知识,包括更新、同步和自动化的最佳实践。
开发 移动 更新

Capacitor 应用程序中的版本标签

了解 Capacitor 应用程序中的版本标记基本知识,包括更新、同步和自动化的最佳实践。

Capacitor 应用程序中的版本标记

版本标记是管理应用程序的关键 Capacitor : 跟踪更新、启用回滚并确保稳定的部署。

  • 语义版本: 使用
  • 使用语义版本使用语义版本 MAJOR.MINOR.PATCH 表示重大变更、新增功能或 bug 修复。
  • 跨平台同步: 在 package.json, Info.plist, build.gradle.
  • 自动化: 使用 使用npm脚本和CI/CD工具。
  • 实时更新context Capgo 简化的中文
  • /zh/blog/version-tagging-in-capacitor-apps/Live Update

Cloudflare

Capacitor GitHub Capgo
code API 1.2.3 → 2.0.0
SDK CLI npx cap sync
npm 加速版本更新 npm version patch
实时更新 快速用户采用 Capgo’s 95% 在 24 小时内
测试阶段 版本标记简化 1.3.0-beta.1

应用程序更新 应用更新如何自动配置您的

__CAPGO_KEEP_0__ Capacitor 实时更新平台

Capacitor Framework 文档网站

在 Capacitor 中设置版本

请按照以下步骤确保您的 Capacitor 应用程序在所有平台上都能保持一致的版本管理。

在 " package.json

The package.json 当更新版本号时,请遵循语义版本 (SemVer) 规则:

{
  "name": "your-app-name",
  "version": "1.2.3",
  "private": true,
  "dependencies": {
    "@capacitor/core": "5.5.0",
    "@capacitor/ios": "5.5.0",
    "@capacitor/android": "5.5.0"
  }
}

主版本号

  • (1.x.x): 引入破坏性更改。 次版本号
  • (x.2.x): 添加后向兼容的新功能。 小版本号
  • 补丁版本 (x.x.3): 修复bug或进行小幅改进。

保持平台版本的一致性

为了顺利部署应用程序,需要将所有平台的版本号保持一致。每个平台都有自己的版本配置文件:

平台 配置文件 版本键
iOS Info.plist CFBundleShortVersionString
Android build.gradle 版本名称
Web package.json 版本

更新版本后,在 package.json使用以下命令同步更新后的版本信息到本地平台配置中:

npx cap sync

使用Capacitor CLI进行版本管理

Capacitor CLI提供了许多有用的命令来管理版本:

# Check the current version of Capacitor
npx cap --version

# Update Capacitor core and platform dependencies
npm install @capacitor/core@latest
npm install @capacitor/ios@latest
npm install @capacitor/android@latest

# Sync version changes to native platforms
npx cap sync

保持Capacitor CLI更新将确保应用程序与特定版本的功能兼容,减少潜在的不匹配问题。按照以下步骤可以帮助您维护应用程序的正确版本。

语义版本设置

语义版本基础

语义版本化(SemVer) 使用格式 MAJOR.MINOR.PATCH,其中每个部分表示特定类型的更改:

版本组件 目的
MAJOR 引入破坏性更改到 API
MINOR 添加兼容以前版本的新功能
PATCH 修复bug或提高性能而不破坏兼容性

本系统确保开发者可以清晰地传达更新信息,同时保留应用程序版本之间的兼容性。例如,从 1.2.3 to 2.0.0 发送重大、破坏性更新,需要谨慎规划。

何时更新版本号

决定更新哪个版本号

更新类型 何时使用 版本变更示例
重大更新 对于重大API变化或重大UI重构 1.2.3 → 2.0.0
小版本更新 当引入新功能或标记功能为过时 1.2.3 → 1.3.0
补丁更新 对于 bug 修复或小性能调整 1.2.3 → 1.2.4

“我们实践敏捷开发,@Capgo 在持续交付给用户方面至关重要!” - Rodrigo Mantica [1]

现在让我们来看看如何自动化这些更新以简化发布管理。

版本更新自动化

自动化版本更新 可以节省时间并减少错误在您的Capacitor项目中。以下是如何设置它:

  1. NPM版本脚本

将这些脚本添加到您的 package.json 文件中,以便轻松管理版本更新:

{
  "scripts": {
    "version:patch": "npm version patch",
    "version:minor": "npm version minor",
    "version:major": "npm version major"
  }
}
  1. CI/CD集成
    在CI/CD管道中包含版本更新。Capgo支持工具,如 GitHub 操作, GitLab CI, 和 Jenkins, 使其简单地自动化该过程。

“@Capgo 是开发人员寻求通过绕过繁琐的 bug 修复审查来提高生产力的必备工具。” - Bessie Cooper [1]

版本标签方法

Git 版本标签

Git 版本标签是可靠的方法来跟踪 Capacitor 应用程序的发布. 为创建清晰和详细的标签,结合语义版本控制与简短的描述:

git tag -a v1.2.3 -m "Release v1.2.3: Added offline mode support"

为了保持团队内部的一致性,使用标准化的标记格式:

标记组件 格式 示例
发布版本 v[主版本].[次版本].[修订版本] v1.2.3
Beta发布 v[版本]-beta.[数字] v1.2.3-β.1
发布候选版本 v[版本]-rc.[数字] v1.2.3-rc.2

构建号集成

Build numbers 帮助跟踪每个版本中的单个构建。对于 iOS 和 Android,提交每个构建时都应增加构建号码:

{
  "ios": {
    "version": "1.2.3",
    "build": "10234"
  },
  "android": {
    "version": "1.2.3",
    "versionCode": "10234"
  }
}

构建号码应始终增加,即使版本号保持不变。这确保了每个应用商店提交都具有唯一标识,同时保持版本清晰的用户体验。

Beta 版本管理

管理 Beta 版本需要一个结构化的过程来分发测试构建。Capgo’s 频道系统 简化了以下步骤:

  1. 频道设置

创建每个测试阶段的单独频道:

{
  "beta": {
    "version": "1.3.0-beta.1",
    "users": "beta-testers"
  },
  "production": {
    "version": "1.2.3",
    "users": "all"
  }
}
  1. 控制用户访问

设置权限来控制谁可以访问 Beta 版本。这确保了只有经过批准的测试者才能接收 Beta 版本,而生产用户则接收稳定版本。

  1. 版本进展

使用清晰的版本进展系统来跟踪开发阶段:

阶段 版本格式 目的
Alpha 1.3.0-alpha.1 内部测试
Beta 1.3.0-β.1 外部测试组
RC (发布候选版本) 1.3.0-rc.1 最终测试前
生产环境 1.3.0 公开发布

这种方法确保了充分的测试和开发阶段之间的平滑过渡,保持版本跟踪的组织和透明性

应用程序版本显示

在应用程序中准确显示版本信息对于保持用户知情和有效管理更新至关重要

获取版本号 Capacitor

您可以使用 Capacitor 以及此 code 来获取版本细节:

import { App } from '@capacitor/app';

async function getAppInfo() {
  const info = await App.getInfo();
  console.log(`Version: ${info.version}`);
  console.log(`Build: ${info.build}`);
}

为了实现更流畅的体验,创建一个可重用的函数:

export const getVersionString = async () => {
  const info = await App.getInfo();
  return `v${info.version} (${info.build})`;
};

这个函数简化了在应用程序界面中显示版本信息的过程

版本UI实现

以下是如何将版本显示集成到设置组件中的示例

@Component({
  selector: 'app-settings',
  template: `
    <div class="version-info">
      <span>Version: {{ versionString }}</span>
      <span *ngIf="updateAvailable" class="update-badge">
        Update Available
      </span>
    </div>
  `
})

常见的显示版本细节的位置包括:

Location 目的 实施
设置界面 完整版本和构建 详细版本信息
关于页面 基本版本显示 版本号
应用底部 最小显示 版本字符串

在显示版本信息的基础上,集成更新检查系统可以提高用户体验。

更新检查系统

一个更新检查系统确保用户可以访问最新的功能和修复。 Capgo 提供实时通知和控制的更新渠道来管理这个过程:

import { CapacitorUpdater } from '@capgo/capacitor-updater';

async function checkForUpdates() {
  const current = await CapacitorUpdater.current();
  const latest = await CapacitorUpdater.getLatest();

  if (current.version !== latest.version) {
    await CapacitorUpdater.download({
      version: latest.version
    });
  }
}

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

您还可以添加一个用户可见的更新通知,如下所示:

@Component({
  template: `
    <update-modal 
      [version]="newVersion"
      [features]="updateFeatures"
      (updateNow)="performUpdate()"
    />
  `
})

对于企业应用,Capgo 的渠道系统允许您控制更新分发:

渠道 更新类型 更新类型
目标受众 生产 稳定版本
Beta 预发布版本 测试组
关键 紧急修复 受影响用户

通过Capgo的分析仪表板来跟踪更新性能,同时确保应用程序的可靠性。

版本管理解决方案

深入了解高级版本管理解决方案。

版本工具选项

选择版本控制工具时,应重点关注那些简化更新、安全您的code、并支持应用商店发布和实时更新的工具。

以下是您需要关注的关键功能:

功能 重要性 影响
实时更新 关键 减少由于应用商店评论导致的延迟
安全 关键 Safeguards user data and code integrity
分析 重要 衡量更新成功率和用户采用度
CI/CD集成 有用 简化部署流程
成本效益 战略 影响长期预算规划

Capacitor 应用中的一个突出工具是 Capgo,它提供了特定于 Capacitor 应用的功能。 Capacitor 应用.

Capgo context:Capacitor应用的提交PR

Capgo Live Update 控制台界面

Capgo 提供了强大的版本管理功能,包括:

  • 23.5亿次更新成功交付
  • 95% 的用户在 24 小时内完成更新
  • 82% 的全球成功率
  • 434ms 的平均 API 响应时间全球

以下是一个使用 Capgo 进行版本控制的示例:

// Capgo version control example
import { CapacitorUpdater } from '@capgo/capacitor-updater';

const versionControl = {
  async checkVersion() {
    const current = await CapacitorUpdater.current();
    return current.version;
  },

  async deployUpdate(version: string) {
    await CapacitorUpdater.setChannel({
      channel: 'production',
      version: version
    });
  }
};

“我们目前正在尝试使用 @Capgo,因为 Appcenter 停止对混合应用程序的实时更新支持,并且 @AppFlow 的费用太高了。” - Simon Flack [1]

团队大小解决方案

Capgo 提供灵活的计划来适应各种团队大小,使版本管理可扩展和高效。

团队大小 计划 关键功能
个人开发者 基本云托管 实时更新,1,000 MAU
小型团队(2-5) Maker 计划 10,000 MAU,500GB带宽
中型团队(6-20) 团队计划 100,000 MAU,权限
企业 按需付费 无限制 MAU,专属支持

更大的团队,Capgo的频道系统使版本部署具有精确控制:

const enterpriseVersionControl = {
  channels: {
    production: 'stable-releases',
    beta: 'early-access',
    internal: 'development'
  },

  async deployToChannel(channel: string, version: string) {
    await CapacitorUpdater.setChannel({
      channel: channel,
      version: version
    });
  }
};

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

Capgo 还包括一个分析仪表板,用于监控版本采纳率并及早检测潜在问题。通过内置加密和可定制的托管选项,团队可以在扩展部署流程时保持安全性。

结论

理解版本标记的关键在于简化开发和部署流程。以下是主要思想和步骤的快速回顾。

关键要点

版本标记有助于开发者维护平滑和可靠的更新。正确的版本控制提供了明显的优势:

好处 影响 结果
即时更新 缩短的审批时间表 加快用户采纳速度 [1]
版本控制 更好的code管理 更高的成功率 [1]
更新跟踪 实时监控 更快的问题解决 [1]
分发控制 目标推送 多平台支持

这些结果突出了使用有效的版本管理工具的重要性。

如何开始

为了实现这些好处,请遵循以下步骤:

  • 设置版本跟踪: 使用语义版本号在您的 package.json 文件中并集成必要插件。
  • 添加更新检查: 实现系统来验证和跟踪版本更新。
  • 配置发布渠道: 为生产、beta 和开发环境创建单独的环境。

最后,考虑添加一个 live update 系统来确保部署既快速又安全。

继续阅读关于在 Capacitor 应用中的版本标签

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

为 Capacitor 应用程序提供即时更新

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

最新博客文章

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