DevEco 26 / uni-app 鸿蒙包 pack.info 仍为 Beta1 的定位与修复
- 现象与判定依据
AGC 拒审文案:「使用了 HarmonyOS beta 版本的 API」。本地 hvigor 发行构建可成功产出已签名 .app,与编译失败无关。
AGC 扫描的是 HAP 元数据,典型字段:
文件 路径 拒审值 期望值
pack.info summary.modules[].apiVersion.releaseType Beta1 Release / release
module.json app.apiReleaseType Beta1 Release
自检:解压 .app(zip)读取根目录 pack.info,或检查 entry/build/release/outputs/default/pack.info。
- 与工程配置的关系
以下修改必要但不充分:
build-profile.json5:所有 products 移除 compatibleSdkVersionStage(如 beta6)
release 产品 compatibleSdkVersion 使用正式 API 串(如 5.0.5(17))
oh-package.json5:发行工程不依赖 @uni_modules/hmr-for-uni-app(其 compatibleSdkVersionStage 与 Beta abc 易触发 higher sdkReleaseType)
仅做上述工程侧修改后,pack.info.releaseType 仍可能为 Beta1——根因在 DevEco SDK 的 releaseType 元数据,由 ets-loader 写入 HAP。
- DevEco 26:releaseType 的实际来源
hvigor 构建日志(app-harmony/.hvigor/outputs/build-logs/build.log)可定位:
etsLoaderPath: …\sdk\default\openharmony\ets\build-tools\ets-loader
etsLoaderReleaseType: Beta1
Change app api release type with ‘Beta1’
sdkInfo: false:26:26.0.0.23:Beta1
结论:ArkTS 编译链读取 openharmony/ets,不是 hms/ets。
社区旧方案(API 10~11)仅修改 hms/toolchains/uni-package.json 在 DevEco 26 上无效。
.hvigor/cache/project-config.json 中 etsLoaderPath 亦指向 openharmony\ets\build-tools\ets-loader。
- SDK 文件清单(sdk\default)
需将 releaseType(及 sdk-pkg.json 的 stage)从 Beta* 改为 Release:
openharmony(决定 pack.info,优先)
openharmony/ets/oh-uni-package.json ← ets-loader 直接读取
openharmony/js/oh-uni-package.json
openharmony/native/oh-uni-package.json
openharmony/previewer/oh-uni-package.json
openharmony/toolchains/oh-uni-package.json
sdk-pkg.json ← data.releaseType, data.stage
hms(HarmonyOS 组件描述,建议同步)
hms/ets/uni-package.json
hms/js/uni-package.json
hms/native/uni-package.json
hms/previewer/uni-package.json
hms/toolchains/uni-package.json
4.1 误报陷阱
仅校验 hms//uni-package.json 全部为 Release 不能证明可上架;openharmony//oh-uni-package.json 或 sdk-pkg.json 仍为 Beta1 时,产物 pack.info 不变。
-
修复流程
退出 HBuilderX、DevEco Studio(避免 SDK 目录文件锁)
批量 patch 上述 json(“releaseType”: “Beta1” → “Release”;sdk-pkg.json 中 “stage”: “Beta1” → “Release”)
校验:openharmony/ets/oh-uni-package.json + sdk-pkg.json 均为 Release
删除 unpackage/dist/build/app-harmony 全目录(含 .hvigor 缓存;仅删 oh_modules 不够)
HBuilderX:发行 → App-Harmony-本地打包
上传前复检 pack.info → apiVersion.releaseType
Windows 下 patch SDK 文件若遇 EPERM,需管理员权限并确保 IDE 进程已退出。 -
中间产物对照(便于 diff 排查)
发行构建后若仍为 Beta,可逐级查看:
entry/build/release/intermediates/process_profile/default/module.json → apiReleaseType
entry/build/release/intermediates/loader/default/loader.json → byteCodeHarInfo.*.compatibleSdkVersionStage
entry/build/release/outputs/default/pack.info → releaseType
build/outputs/release/pack.info → APP 级 pack.info
loader.json 中依赖 HAR 的 compatibleSdkVersionStage: “beta1” 来自预编译 abc,通常不影响主模块 apiReleaseType;主模块 Beta 标记仍由 ets-loader 的 SDK releaseType 决定。
- 长期方案
安装 Release 渠道 DevEco Studio + HarmonyOS SDK(Help → About HarmonyOS SDK,releaseType 为 Release)
SDK 升级可能重置 Beta1,每次上架前复检 pack.info
手工改 sdk\default 为权宜之计,非官方支持路径 - 环境参考(脱敏)
项 版本
HBuilderX 5.07(vue3)
DevEco Studio 26.0.0.461
compileSdkVersion 26.0.0
compatibleSdkVersion(release) 5.0.5(17)
targetSdkVersion 6.0.0(20)
更多推荐




所有评论(0)