惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

F
Fortinet All Blogs
爱范儿
爱范儿
P
Proofpoint News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
J
Java Code Geeks
宝玉的分享
宝玉的分享
Jina AI
Jina AI
B
Blog
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
aimingoo的专栏
aimingoo的专栏
腾讯CDC
C
Check Point Blog
The Cloudflare Blog
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky
罗磊的独立博客
B
Blog RSS Feed
WordPress大学
WordPress大学
小众软件
小众软件
博客园 - 叶小钗
M
MIT News - Artificial intelligence
GbyAI
GbyAI

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解
DevEco 26 / uni-app 鸿蒙包 pack.info 仍为 Beta1 的定位与修复
catcherx · 2026-06-17 · via 博客园_首页

1. 现象与判定依据

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

2. 与工程配置的关系

以下修改必要但不充分

  • 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。

3. 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.jsonetsLoaderPath 亦指向 openharmony\ets\build-tools\ets-loader

4. SDK 文件清单(sdk\default

需将 releaseType(及 sdk-pkg.jsonstage)从 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.jsonsdk-pkg.json 仍为 Beta1 时,产物 pack.info 不变。

5. 修复流程

  1. 退出 HBuilderX、DevEco Studio(避免 SDK 目录文件锁)
  2. 批量 patch 上述 json("releaseType": "Beta1""Release"sdk-pkg.json"stage": "Beta1""Release"
  3. 校验:openharmony/ets/oh-uni-package.json + sdk-pkg.json 均为 Release
  4. 删除 unpackage/dist/build/app-harmony 全目录(含 .hvigor 缓存;仅删 oh_modules 不够)
  5. HBuilderX:发行 → App-Harmony-本地打包
  6. 上传前复检 pack.infoapiVersion.releaseType

Windows 下 patch SDK 文件若遇 EPERM,需管理员权限并确保 IDE 进程已退出。

6. 中间产物对照(便于 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 决定。

7. 长期方案

  • 安装 Release 渠道 DevEco Studio + HarmonyOS SDK(Help → About HarmonyOS SDK,releaseType 为 Release)
  • SDK 升级可能重置 Beta1,每次上架前复检 pack.info
  • 手工改 sdk\default 为权宜之计,非官方支持路径

8. 环境参考(脱敏)

版本
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)

参考文章:

官方文档: