写点什么

【FAQ】推送获取 push token 报错 6003,如何排查?

作者:HMS Core
  • 2024-03-12
    广东
  • 本文字数:806 字

    阅读完需:约 3 分钟

一、问题现象

客户端调用 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 VERBOSEadb logcat -v threadtime 1> D:\hwpush.log


2、尝试复现遇到的问题场景。


3、等待几十秒,按快捷键“Ctrl+C”完成日志抓取


注:生成日志后注意看下日志记录的时间段需要包含复现问题的时间点。


查找关键日志:


搜索 check certFingerprint failed 关键字,找到如上图所示的日志。certFingerprint be checked is 后面是客户端的证书指纹,certFingerprint of 107 is 后面是 AGC 上配置的证书指纹,107 是对应应用的 appid,因为某种原因开发者打包使用的签名证书指纹不是配置到 AGC 上的证书指纹。开发者可以通过将客户端实际验证使用的证书指纹添加到 AGC 上解决问题。

用户头像

HMS Core

关注

HarmonyOS SDK 2022-06-16 加入

HarmonyOS SDK通过将HarmonyOS系统级能力对外开放,支撑开发者高效打造更纯净、更智能、更精致、更易用的鸿蒙原生应用,和开发者共同成长。

评论

发布
暂无评论
【FAQ】推送获取push token报错6003,如何排查?_HarmonyOS_HMS Core_InfoQ写作社区