鸿蒙应用开发实战【85】— 应用签名与正式HAP打包

鸿蒙应用开发实战【85】--- 应用签名与正式HAP打包

本文是「号码助手全栈开发系列」第 85 篇,持续更新中...

开源社区:https://openharmonycrossplatform.csdn.net


前言

开发完成的应用需要通过签名才能安装到真机或上架应用市场。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 包大小、签名校验

如果这篇文章对你有帮助,欢迎点赞👍、收藏⭐、关注🔔,你的支持是我持续创作的动力!


相关资源:

相关推荐
Magic-ZYJ9 小时前
HarmonyOS Release 构建安全:ArkGuard 混淆、签名配置与秘密管理
安全·华为·harmonyos·移动应用开发·心晴手记
见山是山-见水是水10 小时前
拆解HarmonyOS网络请求适配:原生鸿蒙页面的实现路径与调试方法
华为·harmonyos
m0_7496902310 小时前
【寻迹校园 HarmonyOS NEXT 实战 36】深色模式不是反色:用语义 Token 管理品牌色与状态色
harmonyos·arkts·深色模式·ui设计·主题设计
lqj_本人11 小时前
鸿蒙跨端实战_QT后台切换导致OpenGLES上下文丢失:黑屏自救指南
qt·华为·harmonyos
OH_TPC13 小时前
HarmonyOS APP开发---“数据眼“健康追踪App,需要用到这个库
华为·harmonyos·鸿蒙
lilian23313 小时前
Harmony os 技术实战|拼豆制图49:五组分类视觉规则如何收口成一张配置表
华为·harmonyos
2501_9197490314 小时前
华为鸿蒙免费决策APP—小羊挠头
华为·harmonyos·鸿蒙
m0_7496902314 小时前
【寻迹校园 HarmonyOS NEXT 实战 37】一套 ArkUI 适配四档宽度:sm、md、lg、xl 响应式 Shell 实战
华为·harmonyos·arkui·navigation·响应式布局·多设备适配
RisunJan16 小时前
HarmonyOS 架构精读:从系统分层到应用模型
华为·架构·harmonyos
见山是山-见水是水16 小时前
从需求到页面:鸿蒙原生 Ability 与 ArkTS 交互的 ArkTS 原生实现
华为·harmonyos