HarmonyOS 鸿蒙Next生成的证书为啥报错
HarmonyOS 鸿蒙Next生成的证书为啥报错
自己生成了一套调试证书,首先build里面生成了p12和csr文件,然后在AppGallery connect里面先创建了一个调试证书,在我的项目里面选择创建好的鸿蒙项目(包名和项目一致),在HAP Provision profile里面添加->选择设备->生成profile,然后把4个文件全部下载下来,在deveco里面配置,真机运行时报错
> hvigor ERROR: Failed :entry:default@SignHap…
> hvigor ERROR: Tools execution failed.
07-15 10:34:40 ERROR - hap-sign-tool: error: Signature verify failed
Detail: Please check the message from tools.
> hvigor ERROR: BUILD FAILED in 12 s 182 ms
另外想知道如果通过调试证书打出来的包,是不是也只能安装在包含设备的手机上
基于动态配置签名的多人协同开发应用签名解决方案
1. 剪切build-profile.json5文件里siginingConfigs属性里数组对象出来,只留下空数组。
2. 在build-profile.json5文件同级目录,也就是工程级别目录创建一个data.json文件,粘贴从1剪切出来的内容,但只保留material属性对象内容,也就是{ "storePassword": ....., "certpath": .....} 这样对象结构证书信息。
3. 打开工程级别hvigorfile.ts文件, 导入创建的data.json文件,如:import * as data from "./data.json"
添加配置信息:
config: {
ohos: {
overrides: {
signingConfig: getSigningConfig()
}
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
新增function:
function getSigningConfig() {
return {
type: "HarmonyOS",
material: {
certpath: data.certpath,
storePassword: data.storePassword,
keyAlias: data.keyAlias,
keyPassword: data.keyPassword,
profile: data. profile,
signAlg: data.signAlg,
storeFile: data.storeFile
}
}
}
<button style="position: absolute; padding: 4px 8px 0px; cursor: pointer; top: 8px; right: 8px; font-size: 14px;">复制</button>
自动签名冲突那块官方有提供方案 通过hvigor动态配置
手工签名,你要把真机的UDID在AGC里添加上,如果是为了调试,你可以选择自动签名,然后在菜单里,构建出Hap文件,通过命令安装:hdc install xxx.hap
打包出来的hap, 只能安装在包含设备的手机上, 比如你打包出来的hap包,API是用了12的,那必须是要设备是Next系统的,才可以运行。
团队开发,主要是想弄一套调试证书,所有人都用一套,不然每个人都是auto,提代码时候误提,其他人就会差生冲突,设备id已经加到证书里面了,按照官方文档已经反复试了很多次,运行时候就是报错,感觉像是官方的bug
动态签名可以适合你的场景。
HarmonyOS 鸿蒙Next生成的证书报错可能由多种原因引起,如证书格式不正确、编码问题、证书数据损坏或API使用不当等。请检查证书数据是否符合预期格式(如PEM或DER),并确保在API调用中正确设置了编码和证书数据。同时,确保使用的API和库与鸿蒙系统的版本兼容。如果问题依旧没法解决,请加我微信,我的微信是itying888。