跳过主要内容

Capacitor 应用程序中的版本标记

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

马丁·多纳迪厄

马丁·多纳迪厄

目标市场专家

Capacitor应用中的版本标记

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

  • :跟踪更新、启用回滚以及确保稳定的部署。语义版本
  • :使用MAJOR.MINOR.PATCH 来表示重大变更、新增功能或bug修复。 跨平台同步
  • __CAPGO_KEEP_0__: 版本号对齐 package.json, iOS Info.plist, 和 Android build.gradle.
  • 自动化: 自动更新 与 npm 脚本和 CI/CD 工具一起更新。
  • 实时更新: 类似于 Capgo 可以在 24 小时内将更新推送给 95% 的用户。
  • 测试版管理: 使用结构化的渠道管理 alpha、beta 和生产版本。

快速对比

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

版本标记简化 应用更新, 让用户满意, 并确保开发者可以有效地管理发布。

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

Capacitor 框架文档网站

版本设置在 Capacitor

按照以下步骤确保所有平台上的版本管理一致性在您的Capacitor应用中。

设置版本号 package.json

The package.json 文件是您的应用版本详细信息的主要来源。以下是如何设置的示例:

{
  "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"
  }
}

当更新版本号时,使用语义版本 (SemVer) 规则:

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

保持平台版本同步

确保所有平台的版本号一致以便顺利部署应用程序。每个平台都有自己的配置文件来管理版本号:

平台 配置文件 版本号
iOS Info.plist CFBundleShortVersionString
Android build.gradle versionName
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.32.0.0 表示需要小心规划的重大、破坏性更新。

何时更新版本号

Here’s how to decide which version number to update:

Update Type When to Use Version Change Example
Major Update 对于重大API变化或重大UI重设计 1.2.3 → 2.0.0
Minor Update 当引入新功能或标记功能为过时时 1.2.3 → 1.3.0
Patch Update 对于bug修复或小性能调整 1.2.3 → 1.2.4

“我们实践敏捷开发,@Capgo在持续交付给用户方面是 mission-critical!” - 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 pipeline。 Capgo 支持工具,如 GitHub Actions, GitLab CI, 和 Jenkins让开发者轻松自动化流程。

“@Capgo 是开发者必备工具,通过绕过繁琐的bug修复审查来提高开发效率。” - Bessie Cooper [1]

版本标签方法

Git版本标签

Git版本标签是开发者跟踪__CAPGO_KEEP_0__应用程序发布的可靠方式。 Capacitor app releases为了保持团队内部的一致性,使用标准化的标签格式:

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

标签组成部分

格式 示例 发布版本
Release Version v[MAJOR].[MINOR].[PATCH] v1.2.3
笫一口发安 v[VERSION]-笫一口.[NUMBER] v1.2.3-笫一口.1
句代笫丁口发安 v[VERSION]-句代笫丁口.[NUMBER] v1.2.3-句代笫丁口.2

导入数组管理

导入数组常用一个笫丁口为一的导入组管理。一个导入组管理一个笫丁口。一个导入组管理为用户为一的笫丁口。

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

导入数组不能为一的笫丁口。一个导入组管理为一的笫丁口。一个导入组管理为用户为一的笫丁口。一个导入组管理为一的笫丁口。

笫丁口管理统计

在管理 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-beta.1 外部测试组
RC (Release Candidate) 1.3.0-rc.1 发布前最终测试
生产 1.3.0 公开发布

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

App Version Display

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

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 在持续为用户交付方面至关重要!” - Rodrigo Mantica [1]

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

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

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

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

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

版本管理解决方案

让我们深入了解管理应用程序版本的高级解决方案。

版本工具选项

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

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

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

One standout tool in this space is Capgo, which offers features specifically designed for Capacitor apps.

Capgo 版本控制功能

Capgo Live Update Dashboard Interface

Capgo provides robust version management capabilities, including:

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

以下是一个使用 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, 权限
企业 自定义 PAYG 无限制 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 在持续交付给我们的用户方面是 mission-critical 的!” - Rodrigo Mantica [1]

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

结论

理解版本标记对于简化开发和部署流程至关重要。以下是主要概念和步骤的快速回顾.

关键点

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

好处 影响 结果
即时更新 缩短的审查时间表 更快的用户采用 [1]
版本控制 更好的 code 管理 更高的成功率 [1]
Update Tracking Real-time monitoring Faster issue resolution [1]
Distribution Control Targeted rollouts Multi-platform support

These results highlight the importance of using effective version management tools.

How to Begin

To put these benefits into action, follow these steps:

  • Set up version tracking: Use semantic versioning in your package.json file and integrate necessary plugins.
  • 添加更新检查: 实现版本更新验证和跟踪系统。
  • 配置发布渠道: 为生产、beta 和开发环境创建单独的环境。

最后,考虑添加实时更新系统,以确保部署既快速又安全。

从 Capacitor 应用程序的版本标记中继续

如果您正在使用 版本标记在 Capacitor 应用程序中 来规划回滚和版本控制,连接它与 回滚 回滚的实施细节请参见 版本目标 为实现目标在版本定位中 更新行为 为实现目标在更新行为中 打包 为实现目标在打包中 Capgo 实时更新 为产品工作流程在Capgo 实时更新中

Capacitor应用的实时更新

当有web层bug时,通过Capgo直接将修复推送给用户,而不是等待几天的app store审批。用户在后台接收更新,而native层的变化仍然在正常的审批路径中进行。

立即开始

博客最新文章

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