鸿蒙应用开发实战【85】--- 应用签名与正式HAP打包
本文是「号码助手全栈开发系列」第 85 篇,持续更新中...
前言
开发完成的应用需要通过签名才能安装到真机或上架应用市场。HarmonyOS 应用使用华为的签名体系(HAP 包签名),涉及证书文件(.cer/.p7b)、Profile 文件和密钥库(.p12)。本篇以号码助手项目为例,梳理从签名到正式包的全流程。
本篇涵盖:签名文件类型(p12/cer/p7b)、AGC 上申请证书和 Profile、DevEco Studio 自动签名配置、release 构建模式配置、HAP 包产物验证、命令行签名工具。

一、签名文件体系
HarmonyOS 应用签名需要三个文件:
| 文件 | 扩展名 | 作用 | 来源 | 安全等级 |
|---|---|---|---|---|
| 密钥库 | .p12 |
私钥 + 公钥证书链 | DevEco Studio 生成或 AGC 下载 | 🔴 绝不泄露 |
| 证书文件 | .cer |
应用签名证书 | AGC → 证书管理 | 🟢 可公开 |
| Profile | .p7b |
权限配置 + 设备白名单 | AGC → 证书管理 | 🟢 可公开 |
二、DevEco Studio 自动签名
1. 打开项目 → Build → Generate Key & CSR
2. 填写密钥信息(别名、密码)→ 生成 .p12
3. 到 AGC 上传 CSR → 下载 .cer 证书
4. AGC 创建 Profile(关联证书)→ 下载 .p7b
5. DevEco Studio → Project Structure → Signing Configs
├── Store File: xxx.p12
├── Store Password: ****
├── Key Alias: myapp
├── Key Password: ****
├── Cert Path: xxx.cer
└── Profile: xxx.p7b
6. Build → Build HAP(s) → 选择 release
三、工程签名配置
3.1 build-profile.json5
json5
{
"app": {
"signingConfigs": [
{
"name": "myconfig",
"storeFile": "/path/to/keystore.p12",
"storePassword": "****",
"keyAlias": "myapp",
"keyPassword": "****",
"signAlg": "SHA256withECDSA",
"profileFile": "/path/to/profile.p7b",
"certPath": "/path/to/cert.cer"
}
],
"products": [
{
"name": "default",
"signingConfig": "myconfig",
"buildModeSet": ["debug", "release"]
}
]
}
}
3.2 双模式构建
json5
"buildModeSet": [
{ "name": "debug" }, // 调试包:可调试、含日志
{ "name": "release" } // 正式包:优化、无调试信息
]
四、命令行打包
bash
# Debug 包
hvigorw assembleHap --mode module -p module=entry -p buildMode=debug
# Release 包
hvigorw assembleHap --mode module -p module=entry -p buildMode=release
# 产物位置
entry/build/default/outputs/default/
├── entry-debug-1.0.0.hap
└── entry-release-1.0.0.hap
五、验证 HAP 包
bash
# 解压 HAP(实为 ZIP)
unzip entry-release-1.0.0.hap -d hap_extracted
# 查看签名信息
# 使用 DevEco Studio 的 Verify HAP 工具
# Build → Verify HAP
小结
| 要点 | 说明 |
|---|---|
| 签名三件套 | .p12(密钥库)+ .cer(证书)+ .p7b(Profile) |
| AGC 流程 | 创建应用 → 申请证书 → 生成 Profile |
| 自动签名 | DevEco Studio Project Structure 配置 |
| 构建模式 | debug(调试)vs release(正式) |
| 命令行 | hvigorw assembleHap -p buildMode=release |
| 产物检查 | HAP 包大小、签名校验 |
如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!
相关资源:
- openHarmony 跨平台社区:https://openharmonycrossplatform.csdn.net
- HarmonyOS 官方文档:https://developer.huawei.com/consumer/cn/doc/
- HarmonyOS hilog文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references/hilog
- HarmonyOS testing:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/unit-test
- HarmonyOS 应用签名指南:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-signing