1.需要的文件概念
.cer / .p7b / .p12 / .csr
HarmonyOS应用/服务通过数字证书(.cer文件)和Profile文件(.p7b文件)来保证应用/服务的完整性。在申请数字证书和Profile文件前,首先需要通过DevEco Studio来生成密钥(存储在格式为.p12的密钥库文件中)和证书请求文件(.csr文件)。
- 密钥(.p12):包含非对称加密中使用的公钥和私钥,存储在密钥库文件中,格式为.p12,公钥和私钥对用于数字签名和验证。
- 证书请求文件(.csr):格式为.csr,全称为Certificate Signing Request,包含密钥对中的公钥和公共名称、组织名称、组织单位等信息,用于向AppGallery Connect申请数字证书。
- 数字证书(.cer):格式为.cer,由华为AppGallery Connect颁发。
- Profile文件(.p7b):格式为.p7b,包含HarmonyOS应用/服务的包名、数字证书信息、描述应用/服务允许申请的证书权限列表,以及允许应用/服务调试的设备列表(如果应用/服务类型为Release类型,则设备列表为空)等内容,每个应用/服务包中均必须包含一个Profile文件
2.生成密钥(.p12)和证书请求文件(.csr)
生成密钥(.p12):在主菜单栏单击Build > Generate Key and CSR。
生成证书请求文件(.csr):
在.p12基础上生成证书请求文件(.csr)
3.生成.p12和.csr后,申请发布证书和Profile文件
AppGallery Connect
登录华为应用市场,将生成的.p12和.csr上传到上面,向AppGallery Connect申请发布证书和Profile文件。
1.选择“证书、APP ID和Profile”。
2.创建应用,在app id里面创建应用
3.新增证书
4.下载cer:证书申请成功后,“证书管理”页面展示证书名称等信息。点击“下载”,将生成的证书保存至本地,供后续发布签名使用。
5.申请发布Profile
申请后,就可以下载.p7b
4.项目使用签名
在同包名的项目中,在ide签名加入签名文件和输入密码,在build-profile.json5文件中则填充这些签名,密码被加密显示
{"app": {"signingConfigs": [{"name": "default","type": "HarmonyOS","material": {"storePassword": "000000189824458A4947E66987E27DCE6D75C6B8A48D8C0921DF8261B475C63DC06838D7A5531A9C","certpath": "secure/debug/debug.cer","keyAlias": "debug","keyPassword": "000000187DC1F57F5994DF20F76812C0A48C18BBF94780D79DAF13CA9DFFA924238C883F76FDA6BB","profile": "secure/debug/debug.p7b","signAlg": "SHA256withECDSA","storeFile": "secure/debug/debug.p12"}}],
}