使用 DevEco Studio 配置 Flutter 鸿蒙签名
签名是鸿蒙应用从开发到发布绕不开的一环。本文以 E-Brufen 的真实签名为例,详解完整的证书配置流程。
一、为什么需要签名?
HarmonyOS 要求所有 HAP 包必须经过数字签名才能安装运行。签名体系包含四个关键文件:
| 文件 | 扩展名 | 用途 |
|---|---|---|
| 密钥库 | .p12 | 存储开发者私钥和证书 |
| 证书 | .cer | 开发者的数字身份证明 |
| Profile | .p7b | 应用发布配置文件(含权限和设备白名单) |
| 签名请求 | .csr | 用于向 CA 申请证书 |
在 E-Brufen 项目根目录,你可以看到这四个文件:
firstproject.p12 ← 密钥库 22.cer ← 开发者证书 123456Release.p7b ← 发布 Profile firstproject.csr ← 证书签名请求二、生成签名材料
步骤 1:生成 CSR 和密钥库
在 DevEco Studio 中:
Build → Generate Key and CSR- 填写信息:别名(如
aaa)、密码、组织名称等 - 生成
.csr和.p12文件
或者在命令行使用 keytool:
keytool-genkeypair-aliasaaa-keyalgEC-sigalgSHA256withECDSA\-keystorefirstproject.p12-storetypePKCS12-validity3650⚠️ E-Brufen 使用SHA256withECDSA算法——这是鸿蒙推荐的签名算法,兼顾安全性和性能。
步骤 2:申请证书
- 登录 AppGallery Connect
- 进入
证书管理 → 新增证书 - 上传刚才生成的
.csr文件 - 下载颁发的
.cer证书
申请地址:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html#
步骤 3:申请 Profile
- 在 AppGallery Connect 中进入
Profile 管理 - 创建新的 Profile,选择:
- 证书(刚才申请的
.cer) - 设备类型(phone)
- 应用包名:
com.flutter.brufen
- 证书(刚才申请的
- 下载
.p7bProfile 文件
三、配置 build-profile.json5
将签名材料路径写入ohos/build-profile.json5:
{ "app": { "signingConfigs": [ { "name": "default", "type": "HarmonyOS", "material": { "storeFile": "D:/Flutter/firstproject/firstproject.p12", "storePassword": "00000019314A5E64...", "keyAlias": "aaa", "keyPassword": "0000001994B09538...", "signAlg": "SHA256withECDSA", "profile": "D:/Flutter/firstproject/123456Release.p7b", "certpath": "D:/Flutter/firstproject/22.cer" } } ], "products": [ { "name": "default", "signingConfig": "default", "compatibleSdkVersion": "6.1.0(23)", "runtimeOS": "HarmonyOS" } ] } }