代码适配了鸿蒙电脑,为什么商店仍不可安装:deviceTypes、AGC 与测试证据要三方对齐
代码适配了鸿蒙电脑,为什么商店仍不可安装:deviceTypes、AGC 与测试证据要三方对齐
开发团队已经把窗口、键鼠和大屏布局改好,测试包在鸿蒙电脑上也能启动,上架后用户却搜索不到,或者审核认为支持范围与材料不一致。多设备发布不是“代码能跑”就结束:工程里的 deviceTypes、AppGallery Connect 选择的支持设备和提交的验证证据必须指向同一组设备。
验证边界:本文核对了华为开发者官网截至 2026-09-24 可访问的资料。官方事实与文中的纯函数示例分开说明:示例逻辑已在 Node.js 宿主环境运行,当前本机仍是 API 24 SDK 且没有连接 HDC 真机,因此不把示例称为 API 26 编译或真机实测;正式交付必须在 API 26 SDK、目标设备或对应模拟器上补齐验证。

把验收对象说清楚
常见事故有三类:工程声明了 2in1,AGC 没勾选;AGC 勾选了平板,工程包不包含对应设备类型;两边都勾了,但截图和测试记录只有手机。任意一处扩大或缩小范围,都会让分发结果、审核材料和真实能力互相矛盾。
可执行的验收器
把设备支持范围做成发布清单的单一数据源。构建前解析模块配置,发布前读取目标设备表,人工提交前核对证据矩阵;三份集合必须相等,任何差集都阻断发布。
export function diff(expected:string[], actual:string[]) {
const a = new Set(actual), e = new Set(expected);
return {
missing: expected.filter(x => !a.has(x)),
extra: actual.filter(x => !e.has(x))
};
}
export function releasable(code:string[], agc:string[], evidence:string[]): boolean {
return [diff(code,agc), diff(code,evidence)].every(x => !x.missing.length && !x.extra.length);
}
验收案例一:工程包含 tablet,AGC 只选 phone
这不是运行错误,而是分发配置缺口。发布前的集合校验应直接列出 missing in AGC: tablet,让负责人修正支持设备,而不是上线后再用搜索结果猜原因。
验收案例二:AGC 勾选 2in1,证据只有手机
即使包声明正确,也不能用手机截图证明键鼠、自由窗口和大屏体验。证据集合缺少 2in1 时阻断提交,补齐核心路径、窗口缩放和输入方式记录后再放行。
证据必须落在哪里
| 观察项 | 容易误判 | 可复核做法 |
|---|---|---|
| 工程声明 | 凭记忆检查 JSON | 构建脚本解析 deviceTypes |
| AGC 配置 | 上线后看能否搜索 | 提交前导出支持设备清单 |
| 验证证据 | 一套手机截图复用 | 每类设备有核心任务证据 |
| 变更管理 | 临时勾选不留记录 | 范围变更进入版本审计 |
三方集合校验看起来简单,却能把“代码完成、分发失败”提前到发布前发现。它不替代人工审核,但能消除最常见的配置不一致。
发布前最终检查
- module.json5 中设备类型符合产品计划。
- AGC 支持设备与工程声明一致。
- 每类设备都有对应测试证据。
- 新增设备经过隐私、权限和交互复核。
- 发布记录保留三方集合快照。
官方资料
多设备支持是一份可验证承诺。代码、分发配置和证据三方一致,用户才能真正安装,审核也能看懂应用支持到了哪里。
更多推荐


所有评论(0)