HarmonyOS7 应用发布:从开发到上架 AppGallery 的完整流程
文章目录
前言
第一次提交 AppGallery 审核,被拒了。理由是隐私声明不完整。改了再提,又被拒——这次是截图尺寸不对。折腾了三轮才过审,前后花了快两周。
说实话,发布流程本身不复杂,但细节坑太多。 一个地方疏忽就打回重来,白白浪费时间。今天把完整流程走一遍,帮你一次过审。

开发阶段再顺利,到了发布这一关也容易翻车。签名配置、构建打包、AppGallery 配置、提交审核——每一步都有细节要注意。
这篇文章把从"代码写完了"到"App 上架了"的完整链路梳理一遍,照着走,少踩坑。
发布前检查清单
先别急着打包,逐项过一遍:
| 检查项 | 说明 | 常见问题 |
|---|---|---|
| 应用标识 | bundleName 与 AppGallery 一致 | 不一致导致签名失败 |
| 版本号 | versionCode 递增,versionName 有意义 | 版本号没改,覆盖安装失败 |
| 权限声明 | module.json5 中只申请必要权限 | 多余权限会被审核打回 |
| 隐私声明 | 数据收集说明完整 | 缺少隐私政策链接直接被拒 |
| 截图素材 | 3-5 张,720×1280 以上,9:16 比例 | 尺寸不对、带 debug 信息 |
| 图标 | 512×512 PNG,无透明通道 | 图标太糊或用了系统图标 |
| 调试代码 | 移除 console.log、测试接口 | 残留调试信息被拒 |
| 签名配置 | 发布证书和 Profile 已就位 | 用了调试证书打发布包 |
划重点:隐私声明和权限是审核的重灾区,务必认真检查。 申请了什么权限,隐私政策里就要解释为什么需要。

签名配置
发布包必须带签名,没有签名的 App 装不上真机,更上不了架。
步骤 1:生成密钥和证书请求文件
在 DevEco Studio 菜单栏:Build → Generate Key and CSR
- Key Store File:点击 New 创建新的
.p12密钥库文件,选好存储路径 - Password:密钥库密码,至少 8 位,大小写+数字+特殊符号选两种以上
- Alias:密钥别名,自己起个有意义的名字,比如
myapp_release_2026

- Validity:证书有效期,建议 25 年以上
- Certificate:填组织信息——姓名、组织、城市、国家码
- 最后设置 CSR 文件保存路径,点 Finish
完成后你会得到两个文件:.p12(密钥库)和 .csr(证书请求文件)。
步骤 2:申请发布证书
登录 AppGallery Connect,进入你的项目:
- 左侧导航 → 数字证书 → 点击 新增数字证书
- 填写证书名称,选择 发布证书 类型
- 上传刚才生成的
.csr文件 - 点击提交,下载生成的
.cer证书文件
步骤 3:申请 Profile 文件
还在 AppGallery Connect:
- 左侧导航 → Profile → 点击 添加 Profile
- 填写 Profile 名称,类型选 发布
- 选择上一步创建的数字证书
- 提交后下载
.p7bProfile 文件
步骤 4:配置签名信息
回到 DevEco Studio:File → Project Structure → Project → Signing Configs
取消勾选 “Automatically generate signature”,然后手动填写:
| 字段 | 值 |
|---|---|
| Store File | 步骤 1 生成的 .p12 文件 |
| Store Password | 步骤 1 设置的密码 |
| Key Alias | 步骤 1 设置的别名 |
| Key Password | 与 Store Password 一致 |
| Sign Alg | SHA256withECDSA(固定值) |
| Profile File | 步骤 3 生成的 .p7b 文件 |
| Certpath File | 步骤 2 生成的 .cer 文件 |
配置完成后的 build-profile.json5 大致如下:
{
"app": {
"signingConfigs": [
{
"name": "default",
"type": "HarmonyOS",
"material": {
"certpath": "/path/to/release.cer",
"storeFile": "/path/to/release.p12",
"storePassword": "your_password",
"keyAlias": "myapp_release_2026",
"keyPassword": "your_password",
"profile": "/path/to/release.p7b",
"signAlg": "SHA256withECDSA",
"storeFileHash": "xxx"
}
}
]
}
}
敲黑板:密钥文件(.p12)千万别丢! 丢了就没法更新 App 了,只能重新签名,但旧版本用户没法覆盖升级。
构建 HAP / APP
签名配好了,接下来打包。
构建 HAP(单模块包)
调试或单个模块测试用:
hvigorw assembleHap --mode module -p module=entry@default
HAP 包输出在 entry/build/default/outputs/default/ 目录下。
构建 APP(上架包)
上架必须用 APP 包,它包含所有模块:
hvigorw assembleApp --mode release -p product=default
也可以在 DevEco Studio 菜单操作:Build → Build Hap(s)/APP(s) → Build APP(s)
APP 包输出在 build/outputs/default/ 目录下,文件名类似 myapp-default-signed.app。
注意:Build APP 默认是 Release 模式,已经是正式签名包,不需要额外设置。Build HAP 默认是 Debug 模式,这个要区分清楚。
构建前确认一件事:工程里不需要打包的模块要先移除,DevEco 会把所有模块都打进去。比如测试用的示例模块,别一起打进去。
AppGallery Connect 配置
包打好了,去 AppGallery Connect 做上架前的准备。
创建应用
- 登录 AppGallery Connect → 我的项目 → 添加项目
- 项目下添加应用,填写应用名称、bundleName
- bundleName 必须和代码里的一致,不然签名对不上
配置签名指纹
- 本地生成 SHA256 指纹:
keytool -list -v -keystore release.p12 -storepass your_password
- 复制 SHA256 值
- AppGallery Connect → 项目设置 → 常规 → 应用信息 → SHA256 证书指纹 → 粘贴
开通服务
如果你用到了华为的服务(推送、账号、支付等),需要在 AppGallery Connect 里开通对应服务。不开通的话相关 API 调不通。
提交审核
准备工作做完了,正式提交。
基本流程
- 软件包管理 → 上传
.app文件 - 版本信息 → 填写版本号、更新说明
- 分发国别 → 选择要上架的国家/地区
- 应用信息 → 填写应用介绍、一句话简介、截图、视频
- 内容分级 → 根据应用内容选择年龄分级
- 隐私声明 → 填写隐私政策 URL,声明数据收集情况
- 提交审核
注意事项
- 应用介绍:认真写,审核会看。别用"这是一个很好的应用"这种废话
- 截图:3-5 张,必须是真实界面截图,不能用模拟图或设计稿
- 隐私政策 URL:必须是可访问的 HTTPS 链接,指向完整的隐私政策文档
- 更新说明:写清楚这版改了什么,别留空
- 软件包加密:建议开启,保护代码安全
审核周期一般 1-3 个工作日,高峰期可能更长。
审核常见被拒原因
审核被拒最让人崩溃,列几个高频原因:
- 隐私声明不完整:申请了定位权限但隐私政策没提定位数据用途
- 权限滥用:申请了跟功能无关的权限(比如手电筒 App 申请通讯录)
- 截图不规范:带 debug 信息、尺寸不对、非真实截图
- 应用崩溃:审核人员一打开就闪退,这个最冤——提交前一定要在真机上完整测试
- 包含敏感内容:政治、色情、暴力等,不用多解释
- 未适配最新系统:在 HarmonyOS7 上有兼容问题
- 应用介绍与实际不符:介绍写了某功能但 App 里找不到
- 图标不规范:用了系统图标、有透明通道、分辨率太低
- 签名问题:用了调试签名打发布包,或者 Profile 类型不对
- 版本号问题:versionCode 没递增,或者低于已发布版本
血泪教训:提交前在真机上跑一遍完整流程。 模拟器上正常不代表真机也正常,审核用的是真机。
写在最后
发布流程总结起来就四步:签名 → 打包 → 配置 → 提审。 每一步都不难,但每一步都有细节坑。
最容易忽略的永远是隐私声明和权限——建议写代码的时候就同步维护隐私政策文档,别等到提交审核才补,那时候容易漏。
审核被拒别慌,看清楚拒绝理由,针对性修改就行。大多数被拒都是小问题,改了重新提交,过审不难。
更多推荐



所有评论(0)