“构建成功”只是发布流程的中点
个人开发者第一次提交 HarmonyOS 应用时,很容易把注意力全部放在代码和构建上:只要 DevEco Studio 不报错、安装包能启动,似乎就离上架只差一次上传。
实际流程至少还包括:
功能完成
↓
发布签名
↓
真机与专项测试
↓
隐私/备案/分级资料
↓
商店文案与截图
↓
AppGallery Connect 提交
↓
审核反馈与修正
华为官方知识地图也把应用质量、测试、上架和运营增长列为不同阶段。下面以“心晴手记”HarmonyOS 版为例,整理提交前最容易遗漏的检查项。
政策和后台字段可能更新,最终应以提交当日 AppGallery Connect 与华为开发者联盟官方要求为准。
一、先核对应用身份和版本
应用级配置至少包含:
{
"app": {
"bundleName": "你的唯一 Bundle ID",
"versionCode": 1000001,
"versionName": "1.0.1",
"icon": "$media:app_icon",
"label": "$string:app_name"
}
}
需要确认:
- Bundle ID 与 AppGallery Connect 中创建的应用一致;
- Bundle ID 与备案信息一致;
versionCode是正整数,并且升级时递增;versionName与商店展示版本一致;- 中文、英文、日文应用名称资源完整;
- 桌面图标、启动页图标和商店图标使用同一品牌资产。
Bundle ID 一旦进入签名、备案和市场后台,修改成本会明显上升。不要在临提交前随意重命名。
二、Debug 包和 Release 包不是一回事
正式提交需要正确的发布证书和 Profile。签名材料通常涉及:
.p12密钥库;.cer数字证书;.p7bProfile;- Key Alias;
- 密钥库和私钥密码。
这些内容不应该出现在公开仓库、博客截图或构建日志中。
建议做法是:
- 在本机或受控 CI 中配置签名;
- 仓库只保留不含密钥的示例配置;
- 发布前确认 Profile 对应正确 Bundle ID;
- 使用最终签名包完成安装和真机回归;
- 保存证书到期时间和轮换记录;
- 不要把实际密码复制到教程文章。
华为官方文档说明,发布证书和发布 Profile 与调试版本用途不同,提交前应按 AppGallery Connect 配置的应用身份生成和校验。
三、权限声明要和实际功能一一对应
打开 module.json5,把 requestPermissions 中每一项列出来:
| 权限 | 哪个功能使用 | 何时触发 | 拒绝后影响 |
|---|---|---|---|
| 设备认证 | 可选应用锁 | 用户主动开启 | 不影响日记主功能 |
如果无法为某项权限完整填写这一行,就应该重新评估是否需要它。
“心晴手记”只声明设备认证权限,不声明网络、位置、相机、麦克风、通讯录和泛存储权限。导出使用系统文件 Picker,由用户主动选择目标位置。
同时核对权限用途文案:
- 不写模糊的“优化体验”;
- 说明具体功能;
- 说明触发时机;
- 多语言版本语义一致;
- 不在用户点击功能之前提前请求。
四、隐私政策、隐私标签和代码必须一致
提交前把三份材料放在一起:
- 当前发布包的真实数据流;
- 公开隐私政策;
- AppGallery Connect 隐私标签。
逐项核对:
- 收集或生成了哪些用户数据;
- 数据保存在本机还是发送到外部;
- 使用哪些系统权限;
- 是否接入广告、分析、崩溃或推送 SDK;
- 用户如何访问、更正、导出和删除数据;
- 用户如何撤回同意;
- 开发者/个人信息处理者主体名称是否一致;
- 支持邮箱和公开页面是否能访问。
隐私政策不是仓库里的一份 HTML 就结束了。应用内配置的 URL 必须已经公开部署,而且审核设备可以正常打开。
五、首次隐私流程要用全新安装验证
开发设备上通常已经保存过同意状态,所以日常调试很难发现首次启动问题。
提交前应清除数据或全新安装,完整走一遍:
- 启动后先显示隐私告知;
- 同意之前不创建用户内容、不请求设备认证;
- “阅读隐私政策”能打开正确页面;
- “不同意”是可用选择;
- 同意后进入引导;
- 设置页能再次访问隐私政策;
- 撤回同意后回到隐私门禁;
- 删除全部数据后重启仍保持删除结果。
审核人员看到的是第一次安装路径,不是开发者已经使用数周后的状态。
六、功能测试要围绕数据不变量
不要只测试“按钮能点击”,还要验证业务约束:
今日记录
- 当天首次保存只创建一条;
- 再次保存更新原记录;
- 杀进程重启后内容仍存在。
习惯
- 新增、编辑、归档、恢复和删除正确;
- 归档后历史打卡保留;
- 删除后关联打卡同时删除;
- 快速添加不会创建重复默认习惯。
历史与统计
- 无心情但有打卡的日期仍出现在历史中;
- 月份切换正确;
- 7/30 天统计与记录一致;
- 切换周期后无需离开页面即可刷新。
系统能力
- 应用锁开启前先认证;
- 后台回前台重新锁定;
- 取消认证不泄露正文;
- JSON/CSV 能在真机通过系统文件保存器写入。
七、不要只在一种设备形态上验收
如果 deviceTypes 声明支持 phone、tablet 和 2in1,至少要检查:
- 小屏文字是否截断;
- 横屏和宽屏是否出现超长单列;
- 弹窗宽度是否合理;
- 字体放大后主要按钮能否点击;
- 深色模式下对比度;
- 屏幕阅读器能否读出关键按钮;
- 冷启动、热启动和后台恢复;
- 不同 API 版本的兼容表现。
华为官方建议在发布前覆盖兼容性、稳定性、性能、功耗、隐私与安全等质量维度,可以结合 DevEco Testing、云测试和真机测试补足设备覆盖。
八、商店截图必须来自当前发布包
营销图可以有品牌背景和说明文案,但手机界面部分应来自真实发布包。
需要避免:
- AI 重绘出应用里不存在的按钮;
- 展示尚未实现的功能;
- 截图语言与应用详情语言不匹配;
- 状态栏或系统标识明显异常;
- 使用真实用户日记作为演示数据;
- 零数据统计页占据最重要的展示位。
一套比较清晰的展示顺序是:
- 记录心情;
- 习惯打卡;
- 7/30 天统计;
- 本地隐私与应用锁;
- JSON/CSV 导出和删除数据。
截图不只是“好看”,还应该覆盖用户决定是否下载时最关心的价值。
九、文案要准确,不要为了转化夸大功能
心情日记尤其要避免医疗化承诺。如果产品只是记录和描述性统计,就不要写:
- 治疗焦虑;
- 改善抑郁;
- 诊断心理疾病;
- 保证睡眠改善。
可以准确描述:
- 记录当下心情;
- 用标签保留情境;
- 回顾 7/30 天记录;
- 数据默认仅保存在本机;
- 支持系统设备认证和数据导出。
审核备注也应简洁说明测试路径:
同意隐私 → 跳过/完成引导 → 保存今日记录
→ 历史查看 → 设置中测试导出、删除和应用锁
如果某功能需要特定条件,主动写在审核备注里,比让审核人员猜测更有效。
十、正式提交前的最后一页清单
账号与资料
- 开发者实名认证完成
- APP 备案完成且信息一致
- 年龄分级、版权、联系人资料完整
- 支持邮箱可用
构建与签名
- Bundle ID、版本号正确
- 使用发布证书和发布 Profile
- 签名材料未进入公开仓库
- 最终包可以真机安装
隐私与权限
- 隐私政策已公开部署
- 主体名称与开发者账号一致
- 隐私标签与代码一致
- 权限最小化且用途明确
- 撤回同意、导出、删除可用
质量
- phone 真机通过
- tablet/宽屏完成检查
- 冷热启动与后台恢复通过
- 应用锁和文件导出通过真机验证
- DevEco Testing/云测试问题已处理
商店素材
- 名称、简介、详情文案准确
- 截图来自当前发布包
- 不包含虚构功能或医疗承诺
- 隐私政策和支持链接可打开
总结
AppGallery 上架不是“上传安装包”这一个动作,而是应用身份、签名、隐私、质量和商店表达的一次一致性验收。
对个人开发者来说,最有效的方法是把检查项写进仓库,与功能一起维护。每次修改权限、数据结构、Bundle ID、公开链接或商店描述时,同步更新发布清单,而不是等审核驳回后再回忆发生了什么。
本文案例来自“心晴手记(MoodMemoir)”HarmonyOS 版的发布准备过程。具体政策请以提交当日官方要求为准。

1159

被折叠的 条评论
为什么被折叠?



