
引言
应用上架是开发周期的"最后一公里"。代码写得再好,如果无法顺利通过华为应用市场(AppGallery)的审核并触达用户,一切努力都大打折扣。HarmonyOS 应用的上架流程涉及 AGConnect 平台配置、签名证书管理、构建打包、应用市场提交、审核规范等多个环节,每个环节都有明确的规则和常见的踩坑点。
本文基于「节气通」的真实上架经验,提供一份从零到通过审核的完整指南。
学习目标
完成本文后,你将能够:
- ✅ 完成华为开发者账号注册与 AGConnect 项目创建
- ✅ 配置应用签名证书(调试/发布)
- ✅ 执行正式包的构建与打包
- ✅ 在 AppGallery 提交应用并填写合规信息
- ✅ 理解审核规则,避免常见驳回原因
- ✅ 掌握版本更新与灰度发布流程
上架全流程概览
┌─────────────────────────────────────────────────────┐
│ 应用上架完整流程 │
│ │
│ 1. 准备阶段 │
│ ├─ 注册华为开发者账号 │
│ ├─ 创建 AGConnect 项目 │
│ └─ 配置应用基本信息 │
│ │
│ 2. 签名配置 │
│ ├─ 申请发布证书 (.p12 / .cer) │
│ ├─ 配置 Profile 签名描述文件 │
│ └─ DevEco Studio 中关联签名 │
│ │
│ 3. 构建打包 │
│ ├─ 构建 Release 包 (.app) │
│ └─ 验证包体信息 │
│ │
│ 4. 提交上架 │
│ ├─ AppGallery Connect 创建应用 │
│ ├─ 填写应用信息(名称/分类/截图/描述) │
│ ├─ 上传安装包 │
│ ├─ 填写隐私协议、内容分级、权限说明 │
│ └─ 提交审核 │
│ │
│ 5. 审核与发布 │
│ ├─ 人工/自动审核 │
│ ├─ 处理审核意见(如被驳回) │
│ ├─ 审核通过 → 正式发布 / 分阶段发布 │
│ └─ 版本更新迭代 │
│ │
└─────────────────────────────────────────────────────┘
步骤1: 准备工作
1.1 注册华为开发者账号
入口: https://developer.huawei.com/
| 项目 | 说明 |
|---|---|
| 账号类型 | 华为账号(手机号或邮箱注册) |
| 认证要求 | 个人开发者:实名认证;企业开发者:企业认证 |
| 费用 | 注册免费,但部分服务(如高级分析)需付费 |
| 注意事项 | 一个账号可创建最多 100 个应用 |
1.2 创建 AGConnect 项目
AGConnect(AppGallery Connect)是华为应用服务的统一管理后台。
操作路径:
登录 developer.huawei.com
→ 控制台
→ 我的项目
→ 添加项目
→ 填写项目名称(如: JieQiTong)
→ 选择平台: Web / Android / HarmonyOS (选 HarmonyOS)
→ 创建项目
1.3 在项目中添加应用
操作路径:
项目列表 → 点击刚创建的项目
→ 添加应用
→ 应用名称: 节气通
→ 应用包名: com.example.jieqitong (必须与代码中 module.json5 的 bundleName 一致!)
→ 应用类别: 工具 / 生活(根据实际选择)
→ 默认语言: 中文
→ 创建应用
关键 :
bundleName必须与代码完全一致,否则签名校验不通过。
创建成功后,记录以下信息:
| 信息 | 位置 | 用途 |
|---|---|---|
| APP ID | 应用信息 → AppGallery Connect 配置 | 应用唯一标识 |
| Client ID | 应用信息 → OAuth 2.0 客户端ID | 第三方认证 |
| API Key | 项目设置 → 常规 | HMS SDK 初始化 |
步骤2: 签名配置
HarmonyOS 应用必须经过数字签名才能在真机上运行和上架。
2.1 签名类型对比
| 类型 | 文件格式 | 用途 | 有效期 |
|---|---|---|---|
| 调试签名 | 自动生成(DevEco Studio) | 开发调试 | 临时 |
| 发布签名 | .p12 + .cer | 正式上架 | 1年 / 3年 / 更长 |
2.2 申请发布证书
方式一:通过 AGConnect 生成(推荐)
操作路径:
AppGallery Connect → 用户与访问 → 证书管理
→ 添加证书
→ 类型: 发布证书
→ 证书文件: 上传 CSR 文件(见下方生成方法)
→ 别名: JieQiTong_Release
→ 有效期: 选择(建议 3 年以上)
→ 确认
生成本地 CSR 文件
bash
# 使用 keytool 生成证书请求文件
keytool -genkeypair \
-alias jieqitong_release \
-keyalg RSA \
-keysize 2048 \
-validity 3650 \
-keystore jieqitong.keystore
# 从 keystore 导出 CSR
keytool -certreq \
-alias jieqitong_release \
-file jieqitong.csr \
-keystore jieqitong.keystore
提示: CSR 生成过程中会要求输入姓名、组织等信息。个人开发者填真实姓名即可。
下载证书文件
CSR 审核通过后,下载获得:
.cer文件 --- 数字证书- 将
.cer导入本地 keystore
bash
# 导入华为签发的证书到 keystore
keytool -importcert \
-file huawei_release.cer \
-alias huawei_release_cert \
-keystore jieqitong.keystore
2.3 配置 Profile 签名描述文件
Profile 文件定义了哪些设备可以安装该应用。
操作路径:
AppGallery Connect → 用户与访问 → 管理签名公钥指纹
→ 添加公钥指纹(从你的 keystore 获取)
# 获取 SHA-256 指纹
keytool -list -v -keystore jieqitong.keystore -alias jieqitong_release
然后创建 Profile:
AppGallery Connect → 我的项目的对应应用
→ 添加 Profile
→ 类型: 发布
→ 证书: 选择上面创建的发布证书
→ 设备类型: Phone / Tablet(按需要选择)
→ 有效期: 与证书一致
→ 下载 .profile 文件
2.4 DevEco Studio 中配置签名
json5
// build-profile.json5 中配置签名信息
{
"app": {
"signingConfigs": [
{
"name": "default",
"type": "HarmonyOS",
"material": {
"storePassword": "你的keystore密码",
"certpath": "./signing/huawei_release.cer",
"keyAlias": "jieqitong_release",
"keyPassword": "你的key密码",
"profile": "./signing/JieQiTong_Release.p7b",
"signAlg": "SHA256withECDSA",
"storeFile": "./signing/jieqitong.keystore"
}
}
],
"products": [
{
"name": "default",
"signingConfig": "default", // ← 使用上面的签名配置
"compatibleSdkVersion": "5.0.0(12)",
"runtimeOS": "HarmonyOS"
}
]
}
}
或者通过 IDE 图形界面配置:
File → Project Structure → Signing Configs
☑ Enable HarmoniousApp Signing
→ 选择 Sign In 登录华为账号(自动同步证书)
或
→ Use local certificate
→ Store File: 选择 .keystore 文件
→ Key Alias: 输入别名
→ Passwords: 输入 keystore 和 key 密码
→ Certpath: 选择 .cer 文件
-> Profile: 选择 .p7b 文件
安全提醒 :
build-profile.json5中的密码明文存储,不要提交到 Git 仓库!建议使用环境变量或在 CI 流水线中注入。
步骤3: 构建打包
3.1 构建前检查清单
| 检查项 | 要求 | 检查方式 |
|---|---|---|
| bundleName | 与 AGConnect 一致 | module.json5 |
| versionCode | 递增(每次发版+1) | app.json5 |
| versionName | 语义化版本号(如 1.0.0) | app.json5 |
| minAPIVersion | 不高于目标系统版本 | build-profile.json5 |
| 签名配置正确 | 发布证书非调试 | Signing Configs |
| 无调试代码 | 移除 console.log / debugger | 全局搜索 |
| 资源文件完整 | 图片/字体/字符串齐全 | 编译无报错 |
3.2 执行构建
bash
# 方式一:DevEco Studio 菜单
Build → Build Hap(s)/APP(s) → Build APP(s)
# 方式二:命令行
hvigorw assembleHapp --mode module -p product=default -p buildMode=release
构建产物位置:
entry/build/default/outputs/default/
└── entry-default-signed.app # 这就是最终的上架包
3.3 验证包体信息
bash
# 查看包体基本信息(确认签名正确)
# 在 DevEco Studio 中:
Build → Analyze HAP/APK → 选择生成的 .app 文件
# 确认项:
# ✓ 包名 (Package Name): com.example.jieqitong
# ✓ 版本号 (Version): 1.0.0 (code: 1)
# ✓ 签名证书信息: 显示你的发布证书
# ✓ 权限列表: 符合预期
# ✓ 文件大小: < 一定限制(通常单包<500MB)
步骤4: 提交到 AppGallery
4.1 进入 AppGallery Connect 后台
入口: https://appgallery.huawei.com/
→ 使用开发者账号登录
→ 选择"我的应用"
→ 创建应用(如果在 AGConnect 已创建则直接看到)
4.2 填写应用基础信息
| 字段 | 要求 | 示例 |
|---|---|---|
| 应用名称 | 简洁有辨识度,不含"官方""第一"等违规词 | 节气通 |
| 应用简介 | 200字以内,清晰描述功能 | 了解二十四节气的时间、习俗与文化 |
| 详细描述 | 支持 Markdown,详细说明功能和特色 | 见下方模板 |
| 应用图标 | 512×512 PNG,无圆角无水印 | 准备好设计稿 |
| 应用截图 | 至少 3 张,推荐 5 张 | 手机实机截图 |
| 分类 | 主分类 + 子分类 | 工具 > 日历/时间 |
| 关键词 | 最多 5 个,用逗号分隔 | 节气,二十四节气,农历,日历,传统文化 |
| 语言 | 支持的语言 | 中文简体, English |
详细描述模板(参考)
【产品介绍】
节气通是一款专注于中国传统文化------二十四节气的知识类应用。
涵盖24个节气的详细信息,包括时间、气候特征、农事活动、民俗文化、养生建议等内容。
【核心功能】
• 二十四节气百科:每个节气的起源、三候、习俗、诗词
• 农历日历查询:公历农历对照,节日提醒
• 节气倒计时:下一个节气的精确时间
• 传统文化知识:节气相关的历史故事和文化内涵
• 多语言支持:中文 / English
• 暗色模式:护眼主题,夜间阅读更舒适
【适用场景】
• 学习传统文化
• 农事活动参考
• 养生保健指导
• 教育科普工具
【更新说明】
V1.0.0
- 首次发布,包含完整的二十四节气内容库
- 支持多语言切换
- 支持暗色模式
4.3 应用截图规范
| 规格 | 要求 |
|---|---|
| 尺寸 | 手机截图最小 1080px 宽,平板 2048px |
| 格式 | JPG 或 PNG |
| 数量 | 3~10 张 |
| 内容 | 不能含模拟器/调试信息/其他App水印 |
| 状态栏 | 可以保留,但不能显示异常信息 |
截图技巧:
typescript
// 截图前建议做的准备:
// 1. 使用真机截图(不要用模拟器)
// 2. 时间设为美观的时间(如 10:08)
// 3. 电量/信号正常显示
// 4. 清空通知栏
// 5. 准备好各页面的截图:首页、详情页、百科页、设置页
4.4 隐私协议
这是审核必查项,必须认真填写。
AppGallery Connect → 应用 → 内容
→ 隐私协议
→ 上传 PDF 或填写在线协议
隐私协议必须包含的内容:
| 必须项 | 说明 |
|---|---|
| 收集的信息 | 明确列出收集了哪些数据(设备信息/日志/用户输入等) |
| 收集目的 | 每种数据的用途 |
| 数据共享 | 是否向第三方共享,共享给谁 |
| 用户权利 | 查看/导出/删除数据的方式 |
| 联系方式 | 开发者邮箱或客服渠道 |
| 协议更新方式 | 如何通知用户新版协议 |
| 生效日期 | 协议生效时间 |
模板要点(节气通用):
《节气通隐私政策》
生效日期: 2026年6月
一、我们收集哪些信息
1. 设备信息:设备型号、操作系统版本(用于适配)
2. 日志信息:崩溃日志、性能数据(用于改进体验)
3. 用户内容:您主动输入的反馈信息
二、我们如何使用信息
• 提供和改进我们的服务
• 分析应用使用情况以优化功能
三、信息的存储
• 数据存储于您的设备本地
• 匿名统计数据加密传输至服务器
四、您的权利
• 您可以在"设置"中关闭数据统计
• 您可以导出您的本地数据
• 您可以卸载应用以删除所有数据
五、联系我们
• 邮箱: support@example.com
4.5 内容分级
AppGallery Connect → 应用 → 内容
→ 内容分级
→ 根据问卷回答自动评级
对于节气通这类应用,通常评级为 3+(Parental Guidance) 或 PG(Parental Guidance Suggested):
| 问题 | 推荐 answer |
|---|---|
| 是否包含暴力内容? | 否 |
| 是否包含色情内容? | 否 |
| 是否包含赌博元素? | 否 |
| 是否包含药品相关? | 否(养生建议不属于) |
| 是否需要联网? | 是(可选,用于内容更新) |
| 是否包含第三方广告? | 视实际情况 |
4.6 权限使用说明
AppGallery Connect → 应用 → 内容
→ 隐私 → 权限
→ 逐个声明每个权限的使用场景
| 权限 | 使用场景 | 是否必需 |
|---|---|---|
| ohos.permission.INTERNET | 加载远程内容、数据更新 | 是(可选) |
| ohos.permission.NOTIFICATION_CONTROLLER | 发送节气提醒通知 | 是(可选) |
| ohos.permission.READ_MEDIA | 读取用户选择的图片 | 否(当前未使用) |
重要: 只声明实际使用的权限,多余的权限申请会导致审核质疑。
4.7 提交审核
所有信息填写完成后:
1. 点击"保存"(保存草稿)
2. 全面检查一遍所有字段
3. 点击"提交审核"
4. 等待审核结果(通常 1-3 个工作日)
步骤5: 审核与常见驳回原因
5.1 审核流程
提交审核
│
▼
┌─────────────┐
│ 自动检测 │ ← 包体扫描、病毒检测、权限检查
│ (~30分钟) │
└──────┬──────┘
│ 通过
▼
┌─────────────┐
│ 人工审核 │ ← 内容审查、截图验证、协议检查
│ (1-3天) │
└──────┬──────┘
│
├── 通过 → 可选择发布策略
│ ├── 立即全量发布
│ └── 分阶段发布(灰度)
│
└── 驳回 → 修改后重新提交
5.2 常见驳回原因及解决方案
Top 1: 隐私协议不规范
驳回理由: 隐私协议缺少数据共享说明 / 未说明用户权利
解决:
- 对照上文"隐私协议必须包含的内容"逐项检查
- 特别是"数据共享"和"用户权利"两个章节最容易遗漏
Top 2: 应用名称违规
驳回理由: 应用名称包含"官方""最""第一"等绝对化词汇
或名称与实际功能不符
解决:
- 名称只做功能性描述:"节气通""二十四节气助手"
- 避免:"中国第一节气APP""官方节气大全"
Top 3: 截图不符合规范
驳回理由: 截图含有模拟器标识 / 分辨率不足 / 含其他App水印
解决:
- 务必使用真机截图
- 最小宽度 1080px
- 不要用带水印的截图工具
Top 4: 权限过度申请
驳回理由: 申请了不必要的权限(如读取联系人/定位等)
解决:
- module.json5 中删除不需要的权限
- 在 AppGallery 中补充每个权限的使用场景说明
- 如果确实不需要某权限,直接移除重新打包
Top 5: 应用功能不完整
驳回理由: 存在无法使用的空白页面 / 功能报错
解决:
- 所有页面都要有实际内容
- 空状态要有友好提示
- 网络请求失败时不能白屏
- 测试所有入口后再提交
Top 6: 缺少退出机制
驳回理由: 应用没有明确的退出入口
解决:
- 设置页添加"退出登录"/"退出应用"按钮
- 或确保系统能通过返回键退出
5.3 快速过审技巧
| 技巧 | 说明 |
|---|---|
| 参考同类已上架应用 | 看看别人怎么写描述、怎么截图 |
| 先提交一次试水 | 第一次可能被驳回,根据反馈改就好 |
| 隐私协议越详细越好 | 宁多勿少,覆盖所有数据使用场景 |
| 截图要精美 | 第一印象很重要,影响用户下载转化 |
| 回复审意见要及时 | 驳回后尽快修改重提,通常二次审核更快 |
步骤6: 发布策略
6.1 发布选项
| 策略 | 说明 | 适用场景 |
|---|---|---|
| 立即发布 | 审核通过后对所有用户可见 | 小版本更新 / 紧急修复 |
| 定时发布 | 设定具体时间自动发布 | 重要版本选择合适时机 |
| 分阶段发布 | 先推送给少量用户,逐步扩大 | 大版本更新 / 有风险的功能 |
6.2 分阶段发布(灰度)
AppGallery Connect → 应用分发 → 管理
→ 发布策略
→ 选择"分阶段发布"
→ 第一阶段: 5% 用户(观察 24h)
→ 第二阶段: 20% 用户(观察 48h)
→ 第三阶段: 50% 用户(观察 72h)
→ 第四阶段: 100% 全量
灰度期间关注指标:
- 崩溃率(目标 < 0.2%)
- 用户反馈(应用市场评论)
- 核心功能可用性
- 性能指标(启动速度、页面加载)
6.3 版本更新流程
发现 Bug / 新需求
│
▼
修改代码 → bump versionCode 和 versionName
│
▼
构建新包 (确保 signing config 正确)
│
▼
AppGallery Connect → 上传新版本包
│
▼
填写版本更新说明(用户可见的更新内容)
│
▼
提交审核 → 审核通过 → 发布
版本号规范:
versionFormat: MAJOR.MINOR.PATCH
MAJOR: 重大架构变更或不兼容更新 (1.0.0 → 2.0.0)
MINOR: 新增功能 (1.0.0 → 1.1.0)
PATCH: Bug修复 (1.0.0 → 1.0.1)
versionCode: 单调递增整数 (每次提交必须 +1)
V1.0.0 → code: 1
V1.0.1 → code: 2
V1.1.0 → code: 3
V2.0.0 → code: 4
步骤7: 上架后的运营
7.1 应用市场优化 (ASO)
| 优化项 | 操作 | 影响 |
|---|---|---|
| 关键词 | 选择精准搜索词(节气/农历/日历/传统文化) | 搜索排名 |
| 应用图标 | 简洁、辨识度高、在小尺寸下也清晰 | 点击率 (CTR) |
| 截图 | 展示核心功能亮点,首图最重要 | 转化率 |
| 应用描述 | 前3行最重要(搜索结果显示时截断) | 安装意愿 |
| 评分与回复 | 及时回应用户评价,处理差评 | 排名权重 |
| 类别选择 | 放在竞争较小但精准的分类 | 曝光量 |
7.2 数据监控
AppGallery Connect → 分析
→ 应用分析
• 新增用户 / 活跃用户 / 留存率
• 下载量 / 安装量 / 卸载量
• 来源分析(搜索/推荐/分享)
• 评分趋势
→ 性能分析
• 崩溃报告(必看!)
• 启动时长
• 页面加载时间
• ANR 率
上架检查清单(终极版)
提交审核前,逐项确认:
代码层面
-
bundleName与 AGConnect 一致 -
versionCode递增,versionName合理 - 无调试代码(debugger / 过多的 hilog)
- 签名为发布证书(非调试签名)
- 所有页面功能正常,无空白页/崩溃
- 有明确的退出机制
- 网络超时有友好提示
应用信息层面
- 应用名称不含违规词(官方/最/第一)
- 图标 512×512 PNG,无圆角无水印
- 截图 ≥3 张,1080px+,真机截图
- 描述清晰,前3行有吸引力
- 分类准确
合规层面
- 隐私协议完整(6项必备内容都有)
- 内容分级已填写
- 每个权限都有使用场景说明
- 无多余权限申请
- 第三方 SDK 有隐私说明(如有)
打包产物
- 包体格式为
.app(HAP/APP) - 包体大小合理(通常 < 50MB)
- 签名信息验证通过
- 安装到真机能正常运行
相关链接
- 项目源码 : GitCode仓库
- 应用下载 : 华为应用市场
- 华为开发者联盟 : 华为开发者联盟
- AppGallery Connect : AppGallery Connect