-
-
[求助]【FAQ】推送获取push token报错6003,如何排查?
-
发表于: 2024-3-12 16:46 1961
-
一、问题现象
客户端调用getToken方法获取push token失败并报错,关键错误日志:com.huawei.hms.common. ApiException: 6003: certificate fingerprint error。
二、问题排查
6003错误码在“常见错误码”说明文档中有说明:
检查申请相关服务时是否配置了正确的证书指纹:
1、打开应用的APK,将其中“META-INF”文件夹解压出来,得到其中的“CERT.RSA”文件,通过keytool -printcert -file META-INF/CERT.RSA命令打印签名证书信息。
2、登录AppGallery Connect,单击“我的项目”,选择需要操作项目,进入项目页面后选择应用,然后在“项目设置 > 常规”中检查“SHA256证书指纹”配置的信息是否与上面命令行打印出来的指纹一致。
上面是6003错误码通常的排查方法,有些开发者是因为打包使用的签名证书指纹和AGC上配置的证书指纹不一致,有些开发者是因为变更了签名但是HMS Core还缓存有老的签名文件,才获取token失败并报6003错误码,通过上面通常的排查方法一般可以解决。
但是还有些开发者按照上面的方法排查后并不能解决问题,报6003错误码表示应用打包使用的签名文件对应的证书指纹和AGC上配置的证书指纹不一致,这个是没错的,需要抓取logcat日志查看下客户端实际验证使用的证书指纹。
日志抓取方法:
1、使用adb连上手机后,分别执行下面命令:
adb shell setprop log.tag.hwpush VERBOSE adb logcat -v threadtime 1> D:\hwpush.log
2、尝试复现遇到的问题场景。
3、等待几十秒,按快捷键“Ctrl+C”完成日志抓取
注:生成日志后注意看下日志记录的时间段需要包含复现问题的时间点。
查找关键日志:
搜索check certFingerprint failed关键字,找到如上图所示的日志。certFingerprint be checked is后面是客户端的证书指纹,certFingerprint of 10******7 is后面是AGC上配置的证书指纹,10******7是对应应用的appid,因为某种原因开发者打包使用的签名证书指纹不是配置到AGC上的证书指纹。开发者可以通过将客户端实际验证使用的证书指纹添加到AGC上解决问题。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课