鸿蒙打包到真机还比较麻烦,如果是个人开发者,只有一台设备,那直接选择自动签名Automatically generate signature
就可以。但是如果是多人开发多台设备就需要配置了,这样切换分支的时候用同一配置也能打包。
配置签名需要四个文件: .p12、csr .p7b .cer
应用配置文件 p12、csr
这个文件是在编辑器里(Build->Generate Key and CSR
)生成的,同步生成的还有 Store password
、Key alias
、Key password
,p12文件和这三个值一一对应。 p12:是放在应用里的 csr:是用来生成cer的
证书文件 cer
证书生成需要csr文件:
每个账号下只能有1个正式,2个调试。 多个应用,证书都可以用一个,例如元服务和App都可以用同一个。
我们至少需要申请一个正式证书,一个测试证书。正式证书用来发布,测试证书用来开发调试。并且关联设备的p7b文件需要此证书。
profile文件 p7b, 用来绑定设备
p7b文件和cer文件是成对出现的,分为测试和正式。p12则是同一个。
新增profile时,需要填写设备的uuid,把所有的调试设备都关联起来,那么打包到真机时就不会有问题了。
获取udid地址:注册调试设备 hdc shell bm get --udid
可能的问题:
- 需要先配置环境变量,不然一直hdc无效
- 如果出现
[Fail]ExecuteCommand need connect-key? please confirm a device by help info
,关掉 USB调试 开关后重新打开。
最后
会生成5个文件,即1个p12文件,2个cer文件和2个p7b文件。共用一个p12文件,测试和正式分别用对应的cer和p7b文件。
签名机制和安卓几乎完全不一致,这里在简单总结一下: 签名证书过期是cer过期了,cer生成需要用到csr文件,csr是和p12同时生成的,是在编译器里生成。 然后拿着新的cer文件去生成p7b文件,其中这里有分正式和调试证书。
如果多个应用,我们就有元服务和App。证书文件cer是需要共用的,因为只能生成3个且还要区分正式和调试。 共用cer证书,意味着要共用p12文件,而p12文件是在编译器里生成的。
这里就有一个很大的误区
:安卓编译器里生成的签名文件是和app一一对应的,相当于这个应用的唯一标识了;但是鸿蒙不一样,在其他项目中生成的p12文件,可以在另一个项目中用,因为它们的证书文件 cer是一样的。
所以元服务需要用App里的p12文件。
作者:JinBeen
链接:https://juejin.cn/post/7438346298083147810?searchId=202411181135572152D1999A442935EA32
暂无评论内容