HarmonyOS 鸿蒙Next生成的证书为啥报错

发布于 1周前 作者 phonegap100 来自 鸿蒙OS

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 

另外想知道如果通过调试证书打出来的包,是不是也只能安装在包含设备的手机上

6 回复

基于动态配置签名的多人协同开发应用签名解决方案

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>

手工签名,你要把真机的UDID在AGC里添加上,如果是为了调试,你可以选择自动签名,然后在菜单里,构建出Hap文件,通过命令安装:hdc install xxx.hap

打包出来的hap, 只能安装在包含设备的手机上, 比如你打包出来的hap包,API是用了12的,那必须是要设备是Next系统的,才可以运行。

团队开发,主要是想弄一套调试证书,所有人都用一套,不然每个人都是auto,提代码时候误提,其他人就会差生冲突,设备id已经加到证书里面了,按照官方文档已经反复试了很多次,运行时候就是报错,感觉像是官方的bug

动态签名可以适合你的场景。

HarmonyOS 鸿蒙Next生成的证书报错可能由多种原因引起,如证书格式不正确、编码问题、证书数据损坏或API使用不当等。请检查证书数据是否符合预期格式(如PEM或DER),并确保在API调用中正确设置了编码和证书数据。同时,确保使用的API和库与鸿蒙系统的版本兼容。如果问题依旧没法解决,请加我微信,我的微信是itying888。

回到顶部