【寻迹校园 HarmonyOS NEXT 实战 50】从单元测试到 AGC 审核:HarmonyOS 项目的五级证据与最终交付清单
【寻迹校园 HarmonyOS NEXT 实战 50】从单元测试到 AGC 审核:HarmonyOS 项目的五级证据与最终交付清单
本章导读:这是“寻迹校园 HarmonyOS NEXT 实战”系列第 50 篇,也是阶段性收官篇。一个 HarmonyOS 项目很容易出现证据越级:Node 测试通过被写成真机通过,
BUILD SUCCESSFUL被写成应用可用,FunctionComponent 打开被写成 AI 参数交接成功,AGC“准备提交”被写成审核中。本文把交付证据划分为 Contract、Build、Runtime、Capability、Platform 五级,并以 2026-08-28 的当前项目状态给出逐级证明、反证、风险和最终验收清单。

上图是原创证据金字塔,不是 AGC 或 DevEco Studio 截图。越往上越依赖真实环境与外部状态,下层通过不能自动让上层变绿。
一、为什么要把证据分级
软件交付中最危险的句子往往不是“失败”,而是范围过大的“已经通过”。例如:
- 纯规则断言通过,不代表数据库设备集成通过;
- ArkTS 编译通过,不代表签名包能安装;
- 首页能打开,不代表小艺能力可用;
- 小艺能回复,不代表候选摘要自动传入;
- APP 已上传,不代表已提交审核;
- 预审中,不代表正式审核通过或上架。
五级证据模型的目的,是让每个结论只覆盖它真实证明的范围。
二、Level 1:Contract 规则与合约证据
Contract 层验证确定性规则、数据边界、状态迁移和接口契约。寻迹校园当前包括:
- 六维筛选 AND 语义与时间边界;
- Repository 返回克隆、私密证明不进入公开列表;
- 认领、交接、举报状态机;
- 小艺候选最多 3 条、240 字和二次脱敏;
- 本机剪贴板只写不读的源码合约。
这一级常用 Node assert、静态扫描和数据样例,运行快,适合每次修改后回归。
三、Contract 层的反证
即使所有断言绿色,以下结论仍然没有被证明:
- RelationalStore 在真实设备成功建库和迁移;
- 系统 Photo Picker 返回真实 URI;
- ArkUI 页面不会白屏;
- HAP/HSP 可以安装;
- Agent 或 AGC 平台可用。
Contract 负责“规则是否符合预期”,不负责“平台是否执行这些规则”。
四、Level 2:Build 编译、打包与签名证据
Build 层验证项目在指定 SDK、JBR、hvigor、product 和 build mode 下能否产生产物。至少记录:
- 实际命令;
- type check 结果;
- HAP/HSP/APP 任务;
- signed/unsigned 区分;
- 版本号、构建号;
- 产物路径、大小、时间和 SHA-256;
- 签名 Profile 类型。
项目的 scripts/build-app.ps1 使用 DevEco JBR 与 SDK,执行完整 assembleApp。
五、Build 层的反证
BUILD SUCCESSFUL 不能证明:
- 当前设备已安装新包;
- HSP 与 HAP 版本组合正确;
- Ability 冷启动成功;
- 系统 Kit 权限和账号满足;
- 正式分发签名可普通侧载;
- AGC 接受了这个 APP。
构建成功是必要条件,不是发布完成的同义词。
六、Level 3:Runtime 设备运行证据
Runtime 层从真实设备或明确标注的模拟器开始。标准预检是:
hdc list targets -v
hdc shell "echo write_ok > /data/local/tmp/codex_write_test && cat /data/local/tmp/codex_write_test && rm /data/local/tmp/codex_write_test"
预检通过后,安装同一次构建的 signed HSP/HAP,强制停止旧进程,冷启动 EntryAbility,读取新 PID、前台状态和第一条真实错误,再执行目标用户路径。
七、Runtime 层要记录哪些场景
寻迹校园的核心运行验收包括:
- 首次空库冷启动;
- 发布丢失/拾得记录;
- 本地候选召回与解释;
- 认领核验和重复提交门禁;
- 固定交接点、一次改期、双方确认;
- 举报去重、受理、隐藏/驳回;
- 冷启动持久化;
- 断网、长文本、暗色模式和权限拒绝。
一次“首页截图”不能替代完整用户路径。
八、模拟器、真机和历史证据要分开
模拟器适合布局、导航和部分本地数据流程;相册、Agent Framework Kit、账号、分发策略等能力通常需要真机。历史真机记录仍有价值,但必须保留设备类型、API、日期、包哈希和验证范围。
2026-08-28 当天 HDC 没有连接目标,因此 Runtime 级结论为 not run。项目曾有 API 24 真机冷启动、业务闭环与 HSP/HAP 联合安装证据,但它们不会被冒充成当天结果。
九、Level 4:Capability 系统能力与云能力证据
Capability 层专门验证相机、相册、定位、剪贴板、网络、AI Agent 等能力。它比一般 Runtime 更严格,因为还依赖权限、账号、地区、平台关联和系统版本。
对寻迹校园的小艺能力,至少拆成:
isAgentSupport;- FunctionComponent 可见;
- 系统小艺界面拉起;
- 目标智能体标题一致;
- 候选摘要交接;
- 当前输入得到当前回复;
- 失败时原生候选回退。
十、Capability 级最典型的证据越级
项目历史上已经出现:系统小艺成功打开,但 FunctionOptions.queryText 没有自动显示。若只记录“FunctionComponent 拉起成功”,就会掩盖参数交接失败。
因此当前结论是:
Agent 支持性与系统拉起:历史 passed
目标智能体可见回复:历史 passed
queryText 自动交接:failed
显式复制/粘贴/发送:历史 passed
原生候选回退:passed
五项结论同时存在,没有一项可以删除另一项。
十一、Level 5:Platform 外部平台证据
Platform 层包括小艺开放平台、AppGallery Connect、比赛提交平台和内容发布平台。它们的状态来自外部系统,必须按页面回读区分:
- 本地准备完成;
- 已上传;
- 已绑定版本;
- 准备提交;
- 已提交;
- 预审中;
- 审核中;
- 审核通过;
- 已上架。
任何前一状态都不能自动写成后一状态。
十二、AGC 当前状态如何准确表达
截至项目 2026-08-27 的最新回读记录:
- 分类和标签已保存;
1.0.2 (1000002)、构建版本 3 的 APP 已上传并绑定;- 商店文案和 3 张真实真机截图已保存;
- 菜单和版本页显示
1.0.2 准备提交; - 最终“提交审核”未执行。
所以准确表述是“发行资料和版本草稿已准备,尚未提交审核”,不能写“AGC 审核中”或“应用已发布”。
十三、小艺平台状态也要注明来源
工作流 V6 在 2026-08-17 预览通过并重新提交;用户于 2026-08-20 确认智能体显示已上架,真机同日完成目标智能体拉起和可见回复。
本文准备时没有重新登录平台独立回读,因此“已上架”应注明为用户确认状态,而真机能力则引用本地历史证据。来源透明比一句模糊的“平台已完成”更可信。
十四、五级证据不是线性打勾
五级模型存在依赖,但不是“低级全过,上级自动通过”。例如 Contract 和 Build 可以当天通过,Runtime 因设备未连接而 not run;Capability 仍可引用历史真机证据,但不能升级为当天通过;Platform 可能停在准备提交,与本地构建完全独立。
因此交付状态更适合矩阵,而不是一个总分。
十五、2026-08-28 当前状态矩阵
| 证据级别 | 当前结果 | 证据 | 不能推出 |
|---|---|---|---|
| Contract | passed | 四组本地测试全过 | 真机数据库/Kit 通过 |
| Build | passed | 完整 APP 增量构建成功 | 当天安装、商店发布 |
| Runtime | not run | 当天无 HDC 目标 | 当前包已真机运行 |
| Capability | historical mixed | 拉起/显式复制通过,自动 queryText 失败 | 所有设备账号均支持 |
| Platform | prepared, not submitted | 1.0.2 准备提交 | 审核中、已上架 |
这个矩阵是文章发表日的项目证据边界,不是永久状态。
十六、五级证据金字塔如何落地

上图把规则、构建、设备、能力和平台拆成五条独立通道。绿色表示证据已具备,黄色表示待执行或来源受限;只有对应交付目标要求的通道都满足,最终门禁才能放行。
十七、最终交付清单:Contract
- 需求边界与不可承诺项写入文档;
- 状态机前置条件和副作用有自动化;
- 私密字段不进入公开 DTO、日志或 Prompt;
- 关键 Repository 返回隔离对象;
- 时间、重复提交、空值和错误路径有用例;
- 测试调用生产实现而不是规则副本;
- 失败命令保留第一条真实错误。
十八、最终交付清单:Build
- 记录 DevEco、SDK、JBR、hvigor 和 product;
- type check、HSP、HAP、APP 任务结果明确;
- clean 与增量构建不混写;
- signed/unsigned 产物分开;
- 版本号、构建号与发布草稿一致;
- 产物生成时间、大小和 SHA-256 已记录;
- 签名路径、密码和证书私钥未进入公开材料。
十九、最终交付清单:Runtime
-
hdc list targets -v有目标; -
/data/local/tmp写入预检通过; - 同一次构建的 HSP/HAP 联合安装;
- 强制停止后冷启动成功;
- 新 PID 和前台 Ability 已记录;
- 核心路径、空态、错误态和持久化通过;
- 无崩溃、freeze、panic 或未处理异常;
- 真机、模拟器与未运行项分别标注。
二十、最终交付清单:Capability
- 系统版本与能力支持性检查;
- 权限、登录、隐私协议、网络和地区条件;
- 真实能力界面可见;
- 输入参数在用户界面真实出现;
- 新会话回复可归因于本次输入;
- 不支持、拒绝和断网有降级;
- AI 输出不自动获得业务授权;
- 自动交接失败与显式交接成功分别记录。
二十一、最终交付清单:Platform
- 目标账号、应用、bundle 和版本核对;
- APP 上传成功并回读解析信息;
- 分类、标签、文案、截图和隐私资料已保存;
- 最终提交前获得用户明确确认;
- 提交后回读预审/审核状态;
- 驳回时下载真实报告并原版本修复;
- 不把准备提交、审核中和已上架混写;
- 比赛材料与商店材料分别归档。
二十二、比赛项目还要增加一层“陈述验收”
竞赛演示常见风险不是功能完全不可用,而是讲解超出证据。例如单机角色模拟被说成真实多用户平台、应用内消息被说成系统推送、固定测试数据被说成线上数据库。
最终演示稿应逐句检查:
- “可以演示”还是“生产可用”;
- “本机持久化”还是“多端同步”;
- “用户确认”还是“平台独立回读”;
- “历史真机通过”还是“当前版本当天通过”;
- “准备提交”还是“已提交审核”。
真实边界不会削弱项目,反而能体现工程判断。
二十三、如何组织最终证据包
建议按日期和层级归档:
artifacts/
contract/ 测试输出与规则矩阵
build/ 命令、产物清单、哈希、签名摘要
runtime/ HDC、安装、冷启动、PID、场景记录
capability/ Kit 支持性、权限、真实输入输出
platform/ 上传、版本绑定、提交与审核回读
敏感文件不进入公开仓库;公开报告只保留脱敏摘要和必要哈希。证据文件名包含日期和版本,避免后来拿错旧截图或旧包。
二十四、发布前的停止条件
出现以下情况应停止并请求确认或补证据:
- 目标版本、账号或 bundle 不一致;
- 需要新增权限、签名、SDK 或平台服务;
- 当天无设备却要求声称真机通过;
- APP 上传版本不是验收版本;
- 审核按钮将触发不可逆外部提交;
- 文章、截图或日志包含隐私与签名信息;
- 外部状态只有旧记忆,没有可接受的当前来源。
停止不是拖延,而是保护发布真实性。
二十五、本章能证明什么
2026-08-28 本章准备过程中,四组本地测试为 passed,完整 APP 增量构建为 passed;当天 HDC 设备预检为无目标,因此安装和冷启动为 not run。小艺能力引用日期明确的历史混合证据,AGC 引用 2026-08-27 的最新“1.0.2 准备提交”记录。
本章不能证明当天真机运行、当前平台审核状态已经变化、AGC 已提交或应用已上架。如果后续发生外部操作,必须更新对应 Platform 证据,不能回改低层结果冒充完成。
二十六、系列收官总结
从第 1 篇项目拆解到第 50 篇交付证据,“寻迹校园 HarmonyOS NEXT 实战”始终围绕同一条主线:把页面、状态、数据、系统能力、AI 增强和外部发布拆成可验证的工程边界。
最终最值得保留的不是某一段 ArkTS 代码,而是五级证据纪律:Contract 证明规则,Build 证明产物,Runtime 证明设备行为,Capability 证明真实系统能力,Platform 证明外部提交与审核状态。只有这样,BUILD SUCCESSFUL 才不会被误写成“已经上线”,比赛演示也能经得起追问。
系列阶段性完结。后续若进入 AGC 正式审核、比赛提交或新版本迭代,将继续按同一证据模型记录,不覆盖历史失败,也不越级宣称完成。
更多推荐



所有评论(0)