HarmonyOS 鸿蒙Next应用的版本号管理有什么规范?
HarmonyOS 鸿蒙Next应用的版本号管理有什么规范? 版本号管理需要遵循语义化版本规范,本文介绍版本号的格式、命名规则、以及如何在 manifest.json 中正确配置版本信息。
一、版本号组成
鸿蒙应用有两个版本标识:
| 字段 | 说明 | 示例 |
|---|---|---|
| versionCode | 版本号(整数),用于系统判断新旧 | 100, 101, 102 |
| versionName | 版本名(字符串),用于用户展示 | “1.0.0”, “1.0.1” |
二、uni-app 项目配置
manifest.json
{
"versionName": "1.0.0",
"versionCode": 100,
"app-plus": {
"distribute": {
"android": {
"versionName": "1.0.0",
"versionCode": 100
}
}
},
"app-harmony": {
"versionName": "1.0.0",
"versionCode": 100
}
}
三、版本号命名规范
推荐格式:主版本.次版本.修订版本
X.Y.Z
X = 主版本号(重大更新、不兼容改动)
Y = 次版本号(新功能、向下兼容)
Z = 修订版本号(Bug修复、小改动)
示例演进
| 版本 | versionName | versionCode | 说明 |
|---|---|---|---|
| 首发 | 1.0.0 | 100 | 初始版本 |
| 修复Bug | 1.0.1 | 101 | 小修复 |
| 新功能 | 1.1.0 | 110 | 添加新功能 |
| 大改版 | 2.0.0 | 200 | 重大更新 |
四、versionCode 编码建议
方式1:简单递增
100 → 101 → 102 → 103
方式2:与 versionName 对应
versionName: 1.0.0 → versionCode: 10000
versionName: 1.0.1 → versionCode: 10001
versionName: 1.1.0 → versionCode: 10100
versionName: 2.0.0 → versionCode: 20000
公式:X * 10000 + Y * 100 + Z
方式3:日期编码
versionCode: 20241226 // 2024年12月26日发布
五、华为应用市场要求
强制规则
versionCode 必须递增 - 新版本必须大于已上架版本
不能回退 - 一旦上架 102,就不能再上架 101
整数类型 - versionCode 必须是正整数
建议规则
versionName 使用语义化版本(Semantic Versioning)
保持 versionCode 和 versionName 的对应关系
预留版本号空间(别从1开始,从100开始)
六、多渠道版本管理
如果同时发布 Android 和鸿蒙版本:
{
"versionName": "1.0.0",
"versionCode": 100,
"app-plus": {
"distribute": {
"android": {
"versionName": "1.0.0",
"versionCode": 100
}
}
},
"app-harmony": {
"versionName": "1.0.0",
"versionCode": 100
}
}
建议:Android 和鸿蒙使用相同的版本号,便于管理。
七、代码中获取版本号
// 获取版本信息
const getAppVersion = () => {
// #ifdef APP-PLUS || APP-HARMONY
return {
versionName: plus.runtime.version,
versionCode: plus.runtime.versionCode
}
// #endif
// #ifdef H5
return {
versionName: '1.0.0',
versionCode: 100
}
// #endif
}
// 使用
const version = getAppVersion()
console.log(`当前版本:${version.versionName} (${version.versionCode})`)
八、版本更新检测
// 检查更新
async function checkUpdate() {
const currentCode = plus.runtime.versionCode
// 从服务器获取最新版本
const res = await uni.request({
url: 'https://api.xxx.com/app/version'
})
const latestCode = res.data.versionCode
const latestName = res.data.versionName
const downloadUrl = res.data.downloadUrl
if (latestCode > currentCode) {
uni.showModal({
title: '发现新版本',
content: `新版本 ${latestName} 已发布,是否更新?`,
success: (res) => {
if (res.confirm) {
// 跳转应用市场或下载
plus.runtime.openURL(downloadUrl)
}
}
})
}
}
九、版本号管理最佳实践
- 建立版本日志
版本记录
v1.0.1 (101) - 2024-12-26
- 修复:签到页面闪退问题
- 优化:首页加载速度
v1.0.0 (100) - 2024-12-20
- 首次发布
- 功能:健康记录、签到、知识库
- 自动化版本管理
// package.json
{
"version": "1.0.0",
"scripts": {
"version:patch": "npm version patch && node scripts/sync-version.js",
"version:minor": "npm version minor && node scripts/sync-version.js",
"version:major": "npm version major && node scripts/sync-version.js"
}
}
- 版本号同步脚本
// scripts/sync-version.js
const fs = require('fs')
const pkg = require('../package.json')
const manifest = require('../manifest.json')
const [major, minor, patch] = pkg.version.split('.').map(Number)
manifest.versionName = pkg.version
manifest.versionCode = major * 10000 + minor * 100 + patch
fs.writeFileSync('./manifest.json', JSON.stringify(manifest, null, 2))
console.log(`版本已同步: ${manifest.versionName} (${manifest.versionCode})`)
快速参考
| 场景 | versionName | versionCode |
|---|---|---|
| 首次发布 | 1.0.0 | 100 或 10000 |
| Bug修复 | 1.0.1 | 101 或 10001 |
| 小功能更新 | 1.1.0 | 110 或 10100 |
| 大版本更新 | 2.0.0 | 200 或 20000 |
核心原则:
versionCode 只能增不能减
versionName 用语义化版本
保持两者对应关系
预留版本号空间
更多关于HarmonyOS 鸿蒙Next应用的版本号管理有什么规范?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
HarmonyOS Next应用版本号管理遵循语义化版本规范,格式为主版本号.次版本号.修订号。主版本号更新表示不兼容的API变更,次版本号更新表示向下兼容的功能新增,修订号更新表示向下兼容的问题修复。版本号需在AppGallery Connect中统一管理,与应用包和上架流程关联。
在HarmonyOS Next应用开发中,版本号管理遵循**语义化版本(Semantic Versioning)**规范,以确保版本迭代的清晰性和一致性。以下是核心规范要点:
1. 版本号格式
版本号格式为:主版本号.次版本号.修订号(MAJOR.MINOR.PATCH),例如 1.2.3:
- 主版本号(MAJOR):不兼容的API修改或重大更新时递增。
- 次版本号(MINOR):向下兼容的功能性新增时递增。
- 修订号(PATCH):向下兼容的问题修复时递增。
2. 命名规则
- 版本号必须为非负整数,禁止以
0开头(如01)。 - 禁止在数字间添加空格、字母或特殊字符(如
1.0.0-beta需通过其他字段管理预发布版本)。 - 应用市场可能对版本号有额外约束(如递增要求),需参考具体平台规则。
3. 在 manifest.json 中配置
在应用的 manifest.json 文件中,需在 "app" 字段下配置 "versionName" 和 "versionCode":
- versionName:字符串类型,对应用户可见的语义化版本(如
"1.0.0")。 - versionCode:整数类型,用于应用市场内部版本管理,需随更新严格递增。
示例配置:
{
"app": {
"versionName": "1.0.0",
"versionCode": 1
}
}
4. 注意事项
- 版本号唯一性:每次发布新版本时,
versionCode必须增加,且不可重复使用旧值。 - 兼容性声明:若更新涉及API不兼容变更,需同步更新文档或通过
"apiVersion"字段声明平台兼容性。 - 预发布版本(如Alpha/Beta)建议通过
versionName后缀标识(如"1.0.0-beta.1"),但需确保符合应用市场审核要求。
遵循上述规范可避免版本混乱,并保障应用在分发、更新时的稳定性。

