HarmonyOS 鸿蒙Next中flutter项目上架选取不了版本号更高的软件包

HarmonyOS 鸿蒙Next中flutter项目上架选取不了版本号更高的软件包 【问题描述】我用flutter打包的项目在版本选取的时候选择不了版本号更高的软件包,看了下软件包是支持上架的,用指令打包出来的版本号也是没问题的。

【问题现象】

cke_517.png

cke_2630.png

cke_1534.png

cke_5466.png


更多关于HarmonyOS 鸿蒙Next中flutter项目上架选取不了版本号更高的软件包的实战教程也可以访问 https://www.itying.com/category-92-b0.html

9 回复

尊敬的开发者,您好,

版本号选取中版本(版本号)列,选取版本号更高的软件包,应该查看括号()内的数字,您如图中5.20.9(1),5.20.8(1),由于括号()中都是1,所以判定当前没有更高的版本。

更多关于HarmonyOS 鸿蒙Next中flutter项目上架选取不了版本号更高的软件包的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


好的,感谢老师

尊敬的开发者,您好,如果您后续有什么问题,可以随时进行沟通。

问题已经比较明确了:AGC 不是按前面的 5.20.9 来判断“更高版本”,而是按括号里的那个数字来判定。

你截图里实际显示的是:

  • 5.20.9 (1)
  • 5.20.8 (1)
  • 5.20.7 (1)

这说明:

  • 前面的 5.20.9 是展示用版本号,类似 versionName
  • 括号里的 1 才是平台用于比较的内部版本号,类似 versionCode / buildVersion

因为你这几个包括号里都是 1,所以 AGC 会认为没有更高版本包可选。这个现象和华为开发者论坛里同类问题的官方回复一致:版本选取要看括号里的数字,而不是只看前面的字符串版本号。论坛同类问题

根因

你现在改的是 Flutter 里的:

YAML

version: 5.20.9

但这通常只够让外部展示版本变成 5.20.9没有把内部构建版本号一起抬高,所以 AGC 看到的仍然是:

  • 5.20.9 (1)

而 AGC 的选包规则是:新包版本必须大于等于在架版本,比较时看内部版本号。 HarmonyOS 官方关于“无法选取较高版本包”的说明也明确提到,关键要检查并提升 versionCode官方说明

你这个 Flutter 项目应该怎么改

pubspec.yaml 里的版本写成带 + 的格式,例如:

version: 5.20.9+2

或者如果上架包已经很多轮了,直接设一个更大的数字:

version: 5.20.9+100

这里含义一般是:

  • 5.20.9:展示版本
  • 2 / 100:内部构建版本号

你现在的问题,本质上就是只改了前半段,没改 + 后面的构建号

你接下来怎么验证

重新打包前先改成:

version: 5.20.9+2

然后重新构建上传,去 AGC 看是否变成:

  • 5.20.9 (2)

只要新包显示成比在架包更大的括号数字,通常就能选中了。

额外提醒

如果你是通过脚本打包,虽然命令行输出看起来“版本号没问题”,也要区分两件事:

  • 展示版本号是否正确
  • 上传到 AGC 后括号里的内部版本号是否真的变大

最终以 AGC 列表里的 5.20.9 (x) 为准。

建议

直接把 pubspec.yaml 改成这种格式长期维护:

version: 5.20.9+2

后面每次发版:

  • 5.20.10+3
  • 5.20.11+4

或者即使主版本不变,也要让 + 后面的数字持续递增。

cke_127.png

前面是版本号,+号 后面是内部版本号,你的缺少内部版本号

升级HarmonyOS后,发现手机的游戏性能也有了显著提升。

上传包的时候,有2个选择一个是测试和正式上架,一个是仅测试。需要你确认下是不是勾选了仅测试按钮。

在鸿蒙Next中,Flutter项目上架选取不了版本号更高的软件包,通常是因为oh-package.json5中的版本号未采用完整语义化版本(如1.0.0),或依赖的原生插件包限制最高版本。此外,还需确认编译产物与HAP包签名一致,且包名未与低版本冲突。检查oh-package.json5的version字段格式,并确保所有依赖包均支持目标API版本。

在 HarmonyOS Next 上架 Flutter 应用时,版本号必须严格遵循 x.y.z 三段数字格式(如 1.0.1),且必须大于当前线上已发布的版本。若包内 oh-package.json5 中的 version 字段或 build-profile.json5 中的 versionName 不是纯三段数字(例如包含 +- 等字符),或者 versionCode 未递增,AppGallery Connect 即无法识别为更高版本,从而导致前端无法选择该软件包。

请确认:

  1. oh-package.json5version 为类似 "1.0.1" 的格式;
  2. build-profile.json5versionCode 数值比旧版大;
  3. 新包签名与线上应用一致,且未在同一版本号下存在未完成的草稿。

以上三点任一不满足均会拦截选包操作。

回到顶部