集成华为HMS SDK的游戏或普通应用,调用接口(比如getCurrentPlayer登录接口)总是报错6003。该错误码官方文档表示:签名证书指纹错误,签名证书指纹主要用于校验应用的真实性,确保应用来自可信来源。
针对此问题,可以从以下4点排查:
-
检查当前应用使用的证书签名是否与华为后台配置一致。
-
检查manifest文件中的appid参数是否正常。
-
检查是否有二次签名或者加固。
-
检查是否使用了华为签名服务。
检查点一:检查应用的签名证书信息是否与华为后台配置一致。
- 打开应用的APK,将其中“META-INF”文件夹解压出来,得到其中的“CERT.RSA”文件,通过keytool -printcert -file META-INF/CERT.RSA命令打印签名证书信息。
- 参考配置签名证书文档,检查后台配置的SHA256证书指纹,如果信息和上面的一致,则正常。
注意:不要使用debug版本的keystore签名打包,请使用正式版本打包并使用真机(非模拟器)进行测试。
检查点二:检查manifest文件中的appid参数是否正确
可以通过以下几种方式自行检查:
-
直接查看项目中manifest文件中配置的appid是否正确。
-
将打包后的APK文件使用反编译工具查看manifest文件appid参数。工具自行百度。
检查点三:检查应用是否有二次签名或者加固
当前华为渠道是不会做二次签名的,因此如果应用有做二次签名或者加固,需要自行解决该问题。
检查点四:检查是否使用了华为的应用签名服务
当前华为还提供了应用签名服务,开发者可以将应用的签名秘钥托管给华为,并使用该秘钥为最终分发给用户的APK签名。
按照官网要求,如果使用了该服务,需要将此处生成的证书指纹追加至检查点一:检查应用的签名证书信息是否与华为后台配置一致中的华为后台配置处。
欲了解更多详情,请参见:
HMS Core SDK框架错误码:https://developer.huawei.com/consumer/cn/doc/development/HMSCore-References-V5/error-code-0000001050045846-V5
新应用使用应用签名服务:https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-appsigning-newapp
原文链接:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0203363619150710071&fid=18
作者:鼓楼赵又廷