本文同步发表于我的微信公众号,微信搜索 程语新视界 即可关注,每个工作日都有文章更新
一、调试签名
1.1 目的
调试签名用于开发调试场景,确保应用可以在真机或模拟器上运行测试。
1.2 两种签名方式
-
自动签名:DevEco Studio 提供的便捷方案,适用于大部分调试场景。
-
手动签名:开发者自行生成和管理密钥、证书,适用于特定复杂场景。
二、自动签名
2.1 两种自动签名模式
2.1.1 关联注册应用进行签名
-
特点:与 AppGallery Connect(AGC)中的应用绑定
-
优势:可在 DevEco Studio 内直接开通开放能力(如 Push Kit、Map Kit 等)
-
区域限制:仅支持中国境内(不含港澳台)
2.1.2 未关联注册应用进行签名
-
特点:不与 AGC 应用绑定
-
限制:不支持在 DevEco Studio 开通开放能力
2.2 自动签名使用约束
适用场景
-
一般调试场景
-
需要快速启用开放能力(仅限关联注册模式)
必须使用手动签名的场景
-
跨设备调试、跨应用交互调试、断网调试、多用户共享密钥
-
使用部分不支持自动签名的受限开放权限
-
部分受限 ACL 权限(如需要审批的特殊权限)
-
需要华为业务方审核的权限(如华为账号一键登录)
-
-
Kit 需要配置指纹
-
应用发布场景
2.3 自动签名前提条件
-
关联注册模式:需登录华为开发者账号
-
时间同步:确保本地系统时间与北京时间(UTC/GMT+08:00)一致
2.4 自动签名操作流程
关联注册应用模式步骤:
-
连接设备:连接真机或模拟器
-
开启签名:
-
File > Project Structure > Project > Signing Configs -
勾选
Associate with registered application -
登录华为账号(如未登录)
-
-
开通开放能力(可选):
-
点击
Enable open capabilities -
支持开通:Push Kit、Device status detection、Map Kit、Safety Detect
-
-
配置 ACL 权限(如需):
-
在
module.json5中添加requestPermissions字段
-
{
"module": {
"requestPermissions": [{
"name": "ohos.permission.ACCESS_BLUETOOTH"
}]
}
}
5. 权限申请处理:
-
如应用已在 AGC 申请该权限 → 继续签名
-
如未申请 → 点击弹窗中的链接跳转 AGC 申请 → 返回重新签名
未关联应用模式步骤:
-
连接设备
-
开启签名:
-
File > Project Structure > Project > Signing Configs -
勾选
Automatically generate signature
-
-
配置 ACL 权限(可选):
-
调试时不强制校验,但上架时会审核
-
2.5 自动签名注意事项
-
多设备连接:同时连接多个设备时,所有设备信息都会写入证书
-
证书查看:悬停在
Provisioning Profile: DevEco Managed Profile上可查看证书详情 -
ACL 权限申请:
-
临时证书:审批期间获取,有效期短
-
正式证书:审批完成后获取,有效期长
-
三、手动签名
3.1 核心文件:
-
密钥文件(.p12)
-
包含公钥和私钥,用于数字签名和验证
-
-
证书请求文件(.csr)
-
包含公钥和开发者信息,用于向 AGC 申请数字证书
-
-
数字证书(.cer)
-
由 AGC 颁发,证明开发者身份
-
-
Profile 文件(.p7b)
-
包含包名、证书信息、权限列表、可调试设备列表
-
3.2 手动签名流程
步骤一:生成密钥和证书请求文件
-
Build > Generate Key and CSR -
创建密钥库:
-
Key store file:设置 .p12 文件路径和名称 -
Password:密码需包含两种以上字符类型,长度≥8位
-
-
填写密钥信息:
-
Alias:密钥别名(需记住) -
Password:与密钥库密码一致(自动填充)
-
-
设置 CSR 路径:指定证书请求文件保存位置
-
点击
Finish生成文件
步骤二:申请调试证书
-
登录 AGC → 申请调试证书 → 下载 .cer 文件
-
如未注册应用,需先在 AGC 创建 HarmonyOS 应用
步骤三:申请 Profile 文件和配置权限
-
申请 ACL 权限(如需):
-
在 AGC 中申请受限开放权限
-
重要:确保申请的场景和功能信息准确,否则影响上架
-
-
本地配置权限:
-
在
module.json5中添加相应权限声明
-
-
申请 Profile 文件:
-
在 AGC 中申请调试 Profile → 下载 .p7b 文件
-
步骤四:配置签名信息
-
连接真机设备
-
配置签名参数:
-
File > Project Structure > Project > Signing Configs -
取消勾选自动签名选项
-
填写以下信息:
字段 说明 Store file 选择生成的 .p12 文件 Store password 密钥库密码 Key alias 密钥别名 Key password 密钥密码(与 Store password 一致) Sign alg SHA256withECDSA(固定) Profile file 选择 .p7b 文件 Certpath file 选择 .cer 文件
-
-
文件配套:密钥库文件、密码、Profile、证书必须配套使用
-
路径支持:支持相对路径(以项目根目录为起点)
3.3 查看签名配置
-
悬停查看:悬停在
Provisioning Profile上查看详细信息 -
文件查看:在工程级
build-profile.json5文件的signingConfigs中查看配置
四、签名对比
| 特性 | 自动签名 | 手动签名 |
|---|---|---|
| 适用场景 | 一般调试 | 复杂调试、跨设备、跨应用、发布 |
| 开放能力 | 关联模式支持直接开通 | 需在 AGC 单独配置 |
| 权限管理 | 支持自动申请部分 ACL 权限 | 需在 AGC 手动申请所有权限 |
| 证书管理 | 由 DevEco Studio 自动管理 | 开发者自行生成和管理 |
| 区域限制 | 关联模式仅限中国境内 | 无限制 |
| 设备绑定 | 自动绑定连接的设备 | 需在 AGC 配置调试设备列表 |
五、注意事项
5.1 时间同步
-
自动签名前必须确保本地时间与北京时间一致
5.2 权限申请
-
受限权限:只有符合特殊场景的应用才能申请
-
申请准确性:使用场景和功能描述必须准确,否则上架会被驳回
-
临时证书:审批期间使用,到期需重新申请
5.3 签名失败处理
-
文件配套:确保 .p12、.p7b、.cer 文件配套使用
-
密码一致:Store password、Key password 必须一致
-
别名正确:Key alias 必须与生成时填写的完全一致
5.4 调试与发布分离
-
调试签名:用于开发测试,设备列表有限制
-
发布签名:必须使用手动签名,需申请发布证书和 Profile
1万+

被折叠的 条评论
为什么被折叠?



