跳过主要内容

在Capacitor应用程序中使用版本标签

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

马丁·多纳迪尤

马丁·多纳迪尤

内容营销人员

Capacitor 应用程序中的版本标记

版本标记对于管理 __CAPGO_KEEP_0__ Capacitor 应用程序的版本标记至关重要。它确保了平滑的更新、跟踪变化并在 iOS、Android 和 web 平台上提高应用程序的可靠性。以下是快速概述:

  • 为什么它很重要: 跟踪更新、启用回滚并确保稳定的部署。
  • : 使用语义版本号: 使用 MAJOR.MINOR.PATCH 用来表示重大更新、新增功能或 bug 修复。
  • 跨平台同步:在 package.json, Info.plist, build.gradle.
  • 自动化: 使用 with npm scripts and CI/CD tools.
  • 实时更新:使用 Capgo 向 95% 的用户在 24 小时内传递更新。
  • Beta 管理: 使用结构化的渠道为 alpha、beta 和生产版本。

快速比较

功能目的示例
语义版本清晰地跟踪变化1.2.3 → 2.0.0
同步版本在所有平台上保持一致npx cap sync
自动化加速版本更新npm version patch
实时更新快速用户采纳Capgo在24小时内达95%
Beta频道控制测试阶段1.3.0-beta.1

版本标签简化 应用更新确保用户满意,并让开发者能够有效管理发布

如何自动配置您的 Capacitor 项目 ⚡️

Capacitor Framework 文档网站

在 Capacitor 中设置版本

请按照以下步骤确保在所有平台上均能一致地管理版本号,包括在您的 Capacitor 应用程序中。

设置版本号 package.json

文件是您的应用程序版本详细信息的主要来源。以下是如何设置的示例: 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): 添加后向兼容的新功能。 file serves as the main source for your app’s version details. Here’s an example of how to set it up:
  • 修订版本 (x.x.3): 修复了错误或进行了小幅改进。

保持平台版本同步

在应用程序部署方面保持所有平台版本号的一致性非常重要。每个平台都有自己的配置文件用于版本控制:

平台配置文件版本键
iOSInfo.plistCFBundleShortVersionString
Androidbuild.gradle版本名
Webpackage.json版本

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

npx cap sync

使用Capacitor CLI进行版本管理

Capgo提供了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

Introduces breaking changes to the API

1.2.3 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 CI/CD集成

{
  "scripts": {
    "version:patch": "npm version patch",
    "version:minor": "npm version minor",
    "version:major": "npm version major"
  }
}
  1. 将版本更新纳入CI/CD管道中。__CAPGO_KEEP_0__支持工具,如
    Capgo Actions GitHub Actions, __CAPGO_KEEP_0__, 和 Jenkins, 使其简单地自动化过程。

“@Capgo is a must-have tool for developers seeking productivity by bypassing lengthy bugfix reviews.” - Bessie Cooper [1]

__CAPGO_KEEP_0__ 是开发人员寻求提高生产力并绕过繁琐的 bug 修复审查的必备工具。

版本标签方法

Git 版本标签 Capacitor app releases__CAPGO_KEEP_0__ 应用程序发布

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

。为了创建清晰和详细的标签,结合语义版本控制和简要描述:

为了在团队中保持一致性,使用标准化的标记格式:标签组件示例
发布版本v[MAJOR].[MINOR].[PATCH]v1.2.3
Beta发布v[VERSION]-beta.[NUMBER]v1.2.3-beta.1
发布候选版本v[VERSION]-rc.[NUMBER]v1.2.3-rc.2

构建号集成

构建号有助于跟踪每个版本中的单个构建。对于iOS和Android,分别在每次提交时递增构建号:

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

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

Beta 版本管理

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

  1. 渠道设置

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

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

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

  1. 版本进展

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

阶段版本格式目的
Alpha1.3.0-alpha.1内部测试
Beta1.3.0-beta.1外部测试组
RC (发行候选)1.3.0-rc.1发布前的最后测试
生产1.3.0公开发布

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

应用程序版本显示

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

Getting Version with 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>
  `
})

显示版本详细信息的常见位置包括:

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

除了显示版本信息外,集成更新检查系统可以提高用户体验

更新检查系统

一个更新检查系统确保用户有访问最新功能和修复的权利。 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,并支持应用商店发布和实时更新的工具。

以下是您应该寻找的关键功能:

功能重要性影响
实时更新关键减少应用商店审查导致的延迟
安全必备保护用户数据和code完整性
分析重要测量更新成功率和用户采纳
CI/CD集成实用简化部署流程
成本效益战略影响长期预算规划

在这个领域的一个突出工具是 Capgo,它为 Capgo 应用程序提供了特定功能 Capacitor.

Capgo 版本控制功能

Capgo 实时更新控制台界面

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

  • 2,350万次更新成功
  • 95% 的用户在 24 小时内完成更新
  • 全球成功率达 82%
  • 434ms average API response time worldwide

以下是一个使用 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
    });
  }
};

“We are currently giving a try to @Capgo since Appcenter stopped live updates support on hybrid apps and @AppFlow is way too expensive.” - Simon Flack [1]

我们正在尝试使用 @__CAPGO_KEEP_0__,因为 Appcenter 停止对混合应用程序的实时更新支持,而 @AppFlow 的费用太高了。

Capgo offers flexible plans to accommodate teams of all sizes, making version management scalable and efficient.

__CAPGO_KEEP_0__ 提供灵活的计划,适应各种团队规模,实现版本管理的可扩展和高效团队规模计划
关键特性个人开发者实时更新,10万活跃用户
小型团队(2-5人)制造者计划10,000 名月活用户,500GB带宽
团队成员(6-20)团队计划100万活跃用户,权限
企业版自定义付费无限 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 在为用户持续交付方面至关重要!” - 罗德里戈·曼蒂卡 [1]

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

结论

理解版本标记是简化开发和部署过程的关键。以下是主要概念和步骤的快速回顾。

主要观点

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

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

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

开始

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

  • 设置版本跟踪: 使用语义版本控制在你的 package.json 文件中并集成必要的插件。
  • : 实现系统来验证和跟踪版本更新。: 配置发布渠道。
  • : 为生产、beta 和开发环境创建单独的环境。最后,考虑添加实时更新系统以确保部署既快速又安全。

作者

实时更新Capacitor应用

当web层bug出现时,通过Capgo将修复直接推送到用户端,而不是等待App Store审批几天。用户在后台接收更新,原生代码仍然遵循正常审批流程。

立即开始

博客最新文章

Capgo为您提供必要的专业知识,帮助您创建真正的移动应用。