HarmonyOS鸿蒙Next中versionCode和versionName的对应关系,有没有官方规范啊

HarmonyOS鸿蒙Next中versionCode和versionName的对应关系,有没有官方规范啊 例如versionName是2.1.1,versionCode要写多少呢?201001000?还是2010100;有没有官方规范文档?

或者这就和iOS的build号一样,增加就行;目前鸿蒙还是手动打包,上传AGC,自动打包上传AGC还没接入;若是自动打包就不纠结了,直接脚本修改自增;

3 回复

开发者你好,versionCode是标识应用的版本号,取值为小于2^31次方的正整数。此数字仅用于确定某个版本是否比另一个版本更新,数值越大表示版本越高。开发者可以将该值设置为任何正整数,但是必须确保应用的新版本都使用比旧版本更大的值。

【解决方案】

在HarmonyOS开发中,应用版本号的起点通常是从1.0.0开始。这是因为从1.0.0作为起始版本号可以帮助开发者明确标识应用的初始发布版本。在后续的版本更新中,版本号可以根据需要增加,以反映新的功能添加、性能优化或bug修复。

上架时不可以指定版本号。版本号是在上传的软件包中自动解析的,对应工程中的app.json5中的versionCode和versionName字段。AGC操作界面上的版本对应versionName,版本号对应versionCode。打包升级前可以手动修改工程的versionCode,必须大于等于在架版本的versionCode,最小步长为1,应用市场显示的是versionName。

另外如果对上架的操作有疑问,请参阅背景知识中的发布HarmonyOS应用/升级版本的相关操作指导。

【背景知识】

更多关于HarmonyOS鸿蒙Next中versionCode和versionName的对应关系,有没有官方规范啊的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


鸿蒙Next中versionCode和versionName的对应关系有官方规范。versionCode是内部版本号,用于版本升级判断,必须是整数。versionName是面向用户的版本号,格式为X.Y.Z(主版本号.次版本号.修订号)。两者无强制绑定关系,但建议versionCode随versionName的修订递增。具体规则可查阅华为官方文档《HarmonyOS应用包管理规范》。

在HarmonyOS Next中,versionCodeversionName 的对应关系有明确的官方规范。

官方规范 根据《HarmonyOS应用开发指南》,versionCode 是应用的内部版本号,用于应用市场和设备端识别版本升级关系,必须为整数。versionName 是面向用户展示的版本号。两者没有强制性的对应关系或换算公式。你可以根据团队习惯自由定义 versionCode,只要满足每次发布新版本时,新版本的 versionCode 值大于旧版本即可。

关于您的例子 您提到的 201001000 这类数值,是HarmonyOS早期版本或某些特定场景下(如兼容OpenHarmony的版本号规则)的一种约定俗成的编码方式,并非强制规范。其常见格式为:主版本号 * 10000000 + 次版本号 * 100000 + 修订版本号 * 1000 + 构建号。 例如,对于 versionName: 2.1.1

  • 若构建号为0,按此格式可计算为:2 * 10000000 + 1 * 100000 + 1 * 1000 + 0 = 20101000
  • 您提到的 201001000 计算结果是 20,100,1000,超出了常见范围,可能是笔误或采用了不同基数。
  • 您提到的 20101002,010,100,如果对应 2.1.1,则不符合上述常见格式。

核心建议 对于手动打包,建议采用简单清晰的方案:

  1. 纯数字自增:从1开始,每次发布+1。这是最可靠、无歧义的方式。
  2. 日期时间戳:使用 yyyyMMddHH 格式,如 2024111509。能直观反映构建时间。
  3. 保留编码习惯:如果团队已习惯 大版本*1000000 + 小版本*1000 + 修订号 这类格式,可以继续沿用,但需内部统一规则。

结论 不存在将 versionName 直接换算为 versionCode 的官方公式。只要确保 versionCode 整数且递增即可。自动打包时通过脚本自增是最佳实践。当前手动打包阶段,请从上述方案中选择一种并团队内部统一。

回到顶部