代码适配了鸿蒙电脑,为什么商店仍不可安装: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 支持设备与工程声明一致。
  • 每类设备都有对应测试证据。
  • 新增设备经过隐私、权限和交互复核。
  • 发布记录保留三方集合快照。

官方资料

多设备支持是一份可验证承诺。代码、分发配置和证据三方一致,用户才能真正安装,审核也能看懂应用支持到了哪里。

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐