鸿蒙开发系列 · 专家篇
前言
从第1篇的Hello World到第19篇的CI/CD流水线,我们用20篇文章的篇幅,走完了一个商业级鸿蒙应用的全生命周期。现在代码写完了,测试通过了,构建产物也生成了。但还有一个最关键的环节没完成——让用户能用上它。
应用上架不是"点一下发布按钮"那么简单。它涉及发布证书配置、包体优化、隐私合规审查、应用市场审核、版本管理、灰度发布、上线后数据分析等一系列流程。任何一个环节卡壳,都可能导致上线延期。
作为本系列的收官之作,本文将系统梳理HarmonyOS应用的完整发布链路,帮你的应用顺利通过审核,触达数亿华为设备用户。
一、发布前的准备工作
1.1 发布检查清单
正式打包前,逐条确认以下事项:
1.2 包体优化
包体大小直接影响下载转化率。优化策略:
优化前:48MB
├── 未压缩图片:18MB
├── 冗余资源:8MB
├── 未启用代码混淆:12MB
├── 调试符号:6MB
└── 未分包:4MB单一HAP
优化后:22MB
├── WebP格式图片:6MB(-67%)
├── 删除冗余/测试资源:2MB
├── 启用代码混淆:5MB(-58%)
├── 去除调试符号:0MB
└── 按设备类型分包:9MB基础包 +按需下载
关键优化手段:
图片压缩:PNG转WebP,通常可减少50-70%
# 使用cwebp批量转换 cwebp -q 85 input.png -o output.webp资源分包:按设备类型(phone/tablet/car)拆分HAP
// build-profile.json5 { "targets": [ { "name": "phone", "deviceTypes": ["phone", "default"] }, { "name": "tablet", "deviceTypes": ["tablet"] } ] }代码混淆:在
obfuscation-rules.txt中配置:-enable-property-obfuscation -enable-toplevel-obfuscation -enable-filename-obfuscation -compact动态加载:非首屏资源使用
@bundle按需加载
二、签名与打包
2.1 发布证书与Profile
上架必须使用发布证书,流程如下:
1. 本地生成密钥对
keytool -genkeypair -alias release -keyalg EC -keystore release.p12
2. 生成CSR(证书签名请求)
keytool -certreq -alias release -keystore release.p12 -file release.csr
3. AppGallery Connect申请证书
上传CSR → 下载release.cer
4. 创建发布Profile
选择证书 + 包名 + 权限列表 → 下载release.p7b
5. DevEco Studio配置签名
build-profile.json5中指定release.p7b和release.p12
2.2 多渠道打包
同一应用可能需要区分渠道(如华为市场、内部测试、企业分发):
// entry/build-profile.json5
{
"app": {
"signingConfigs": [
{
"name": "official",
"type": "HarmonyOS",
"material": {
"certpath": "./certs/release.cer",
"profile": "./certs/official.p7b",
"storeFile": "./certs/release.p12",
"keyAlias": "release",
"signAlg": "SHA256withECDSA"
}
},
{
"name": "enterprise",
"type": "HarmonyOS",
"material": {
"certpath": "./certs/enterprise.cer",
"profile": "./certs/enterprise.p7b",
"storeFile": "./certs/enterprise.p12",
"keyAlias": "enterprise",
"signAlg": "SHA256withECDSA"
}
}
]
},
"products": [
{
"name": "default",
"signingConfig": "official"
},
{
"name": "enterprise",
"signingConfig": "enterprise"
}
]
}
打包命令:
# 官方市场包
dev eco build --product default
# 企业分发包
dev eco build --product enterprise
2.3 包体验证
上传前验证HAP完整性:
# 使用hdc验证签名
hdc shell bm dump -n com.yourcompany.yourapp
# 检查包信息
hdc shell bm dump -a
# 安装测试
hdc app install entry/build/default/outputs/default/entry-default-signed.hap
三、应用市场上架流程
3.1 AppGallery Connect 上架步骤
Step 1: 创建应用
├── 登录 AppGallery Connect
├── 我的应用 → 新建
├── 填写应用名称、包名、分类
└── 选择设备类型(phone/tablet/watch/car)
Step 2: 完善应用信息
├── 上传图标(216x216px)
├── 上传截图(至少3张,建议6-8张)
├── 填写应用简介、详细描述
├── 填写更新说明(升级场景)
├── 配置隐私政策URL
└── 填写客服联系方式
Step 3: 上传软件包
├── 上传HAP/App包
├── 选择发布国家/地区
├── 配置付费/免费
└── 设置内容分级
Step 4: 提交审核
├── 系统自动检测(约5分钟)
├── 人工审核(1-3个工作日)
└── 审核结果:通过 / 驳回 / 需要修改
Step 5: 发布
├── 审核通过后手动确认上架
├── 或设置定时上架
└── 应用市场展示
3.2 审核常见驳回原因
四、版本管理与灰度发布
4.1 版本号规范
HarmonyOS采用语义化版本:
版本号格式:MAJOR.MINOR.PATCH (如 2.3.1)
MAJOR:重大功能更新,可能存在不兼容变更
MINOR:新功能发布,向后兼容
PATCH:Bug修复,无功能变更
在 AppScope/app.json5 中配置:
{
"app": {
"bundleName": "com.example.myapp",
"versionCode": 231, // 内部版本号,必须递增
"versionName": "2.3.1", // 对外展示版本
"minCompatibleVersionCode": 200 // 最低兼容版本
}
}
4.2 灰度发布策略
应用市场支持按用户群灰度发布:
灰度发布流程:
1. 发布V2.0.0,灰度10%用户
├── 监控崩溃率、ANR率
├── 收集用户反馈
└── 观察业务指标
2. 如无异常,扩大至50%
3. 全量发布
4. 保留V1.x.x回滚能力(紧急下架时切换)
五、上线后运营与数据分析
5.1 关键指标监控
5.2 数据分析工具
AppGallery Connect 运营分析:
下载趋势、安装转化、用户留存
崩溃分析、性能监控
用户反馈聚合
集成分析SDK(可选):
// 关键事件埋点
import { hianalytics } from '@kit.HiAnalyticsKit';
// 页面浏览
hianalytics.pageStart('PlayerPage');
hianalytics.pageEnd('PlayerPage');
// 自定义事件
hianalytics.onEvent('record_complete', {
duration: 120,
has_transcription: true,
quality: 'high'
});
// 用户属性
hianalytics.setUserProfile('membership', 'premium');
5.3 用户反馈闭环
用户反馈收集
│
├── 应用市场评论(公开)
├── 应用内反馈入口(私有)
├── 崩溃上报(自动)
└── 客服渠道(人工)
│
▼
反馈分类与优先级排序
│
├── P0:崩溃/核心功能不可用 → 立即修复,紧急发布
├── P1:影响体验的功能缺陷 → 下个版本修复
├── P2:优化建议 → 排期评估
└── P3:新功能需求 → 产品 backlog
│
▼
修复 → 测试 → 发布 → 回复用户
六、元服务的特殊发布流程
6.1 元服务 vs 应用上架差异
6.2 元服务卡片审核要点
卡片是元服务的"门面",审核时会重点检查:
信息密度:卡片在2×2尺寸下能否展示核心价值
刷新机制:数据是否及时更新,更新频率是否合理
点击行为:点击卡片后的跳转是否自然、无中断
视觉规范:是否符合HarmonyOS卡片设计规范
适配性:在不同尺寸卡片(1×2、2×2、2×4)下的表现
七、完整发布 checklist
## 发布前最终检查
### 技术检查
- [ ] 使用发布证书签名,调试信息已去除
- [ ] versionCode已递增
- [ ] 代码混淆已启用
- [ ] 所有测试通过(单元/集成/UI)
- [ ] 崩溃率和ANR率在阈值内
- [ ] 隐私清单已完整填写
### 素材检查
- [ ] 应用图标:216×216px,PNG格式
- [ ] 应用截图:至少3张,关键流程覆盖
- [ ] 应用视频(可选):30秒功能演示
- [ ] 元服务卡片预览图(如适用)
### 信息检查
- [ ] 应用名称简洁、无侵权
- [ ] 应用描述准确,突出核心价值
- [ ] 更新说明清晰(升级场景)
- [ ] 隐私政策URL可访问且内容完整
- [ ] 客服邮箱/电话有效
### 合规检查
- [ ] 权限申请与实际功能匹配
- [ ] IAP商品已审核通过(如适用)
- [ ] 无敏感/违规内容
- [ ] 未成年人保护机制(如适用)
八、全系列回顾与学习路径
8.1 20篇文章的知识地图
鸿蒙开发系列 · 完整知识体系
初级篇(第1-3篇)
├── 01 DevEco Studio搭建 + 第一个ArkUI应用
├── 02 ArkTS核心语法
└── 03 ArkUI组件、布局与状态管理
│
▼
中级篇(第4-7篇,第11-13篇)
├── 04 页面路由与导航
├── 05 数据持久化
├── 06 网络请求
├── 07 自定义组件与动画
├── 11 元服务开发
├── 12 安全机制与权限管理
└── 13 推送服务与后台任务
│
▼
高级篇(第8-10篇,第14-16篇)
├── 08 性能优化
├── 09 分布式开发
├── 10 大型应用架构设计
├── 14 音视频开发
├── 15 地图与位置服务
└── 16 支付与账号集成
│
▼
专家篇(第17-20篇)
├── 17 HiAI端侧AI集成
├── 18 ArkUI-X跨平台开发
├── 19 单元测试与自动化测试
└── 20 应用上架与发布流程
8.2 从入门到专家的学习路径
九、小结与展望
本系列从第1篇到第20篇,我们用超过10万字的篇幅,构建了一个完整的HarmonyOS开发知识体系:
初级篇帮你跨过门槛,建立基础认知
中级篇带你掌握核心能力,能独立完成模块开发
高级篇深入特定领域,构建复杂应用
专家篇拓展视野,连接AI、跨平台和工程化
HarmonyOS NEXT是一个仍在快速演进的生态。API 12只是起点,后续的版本会带来更多能力、更好的性能、更丰富的设备形态。作为开发者,最好的准备就是现在就开始写代码。
应用上架不是终点,而是另一个起点。用户反馈会告诉你哪些功能真正有价值,数据会揭示哪些流程需要优化。持续迭代、持续交付、持续学习——这才是工程化的真谛。
感谢一路读到这里的你。如果本系列对你有帮助,欢迎分享给更多开发者。鸿蒙生态的繁荣,需要每一个开发者的参与。
参考阅读
作者:互联网开发站 / 2026-09-01
系列结语
从Hello World到应用上架,我们走完了鸿蒙应用开发的完整旅程。
技术文章的价值不在于收藏,而在于实践。
打开DevEco Studio,开始你的下一个项目吧。