• 集成 push kit 签名配置报6003/收不到华为推送


     【问题描述】

    集成 push kit 签名配置报6003/收不到华为推送,华为getToken返回的rtnCode是6003/E HMSSDK_HmsInstanceId: TokenTask failed, ErrorCode: 6003

    报错一:sha256配置之后,一直提示6003,签名错误。hw appid=104339589 hw ApiException:com.huawei.hms.common.ApiException: 6003: certificate fingerprint error

    报错二:get token error:6003: certificate fingerprint error

    报错三:onErrorResponse. pushType:HUAWEI; errorCode:6003 I/RongLog (11604): [RongLog][ RongLog-Push[HWPush] ] getToken failed, com.huawei.hms.common.ApiException: 6003: certificate fingerprint error

    【分析原因】

    1、AGC控制台检查该证书值与应用信息页配置不一致,导致6003

    2、在应用级目录的build.gradle中未配置debug版本

    3、AppGalleryConnect控制台应用配置信息修改

    【解决方案】

    1、6003为签名配置问题,可以在app登录页中,添加并调用下面的代码,即可在运行时打印apk的SHA256证书指纹值。然后在AGC控制台检查该证书值与应用信息页配置的是否相同(指纹可以配置多 个):

    1. public String getSignatures(Activity activity) {
    2. PackageInfo info;
    3. try {
    4. info = activity.getPackageManager().getPackageInfo(activity.getPackageName(), PackageManager.GET_SIGNATURES);
    5. byte[] cert = info.signatures[0].toByteArray();
    6. MessageDigest md = MessageDigest.getInstance("SHA256");
    7. byte[] publicKey = md.digest(cert);
    8. StringBuffer hexString = new StringBuffer();
    9. for (int i = 0; i < publicKey.length; i++) {
    10. String appendString = Integer.toHexString(0xFF & publicKey[i]).toUpperCase(Locale.US);
    11. if (appendString.length() == 1) {
    12. hexString.append("0");
    13. }
    14. hexString.append(appendString);
    15. hexString.append(":");
    16. }
    17. String value = hexString.toString();
    18. String msg = "SHA256:" + value.substring(0, value.length() - 1);
    19. Log.d(TAG, msg);
    20. return value.substring(0, value.length() - 1);
    21. } catch (NoSuchAlgorithmException | PackageManager.NameNotFoundException e) {
    22. e.printStackTrace();
    23. }
    24. return null;
    25. }


    image.png

    或者打开应用的APK,将其中“META-INF”文件夹解压出来,得到其中的“CERT.RSA”文件,通过keytool -printcert -file META-INF/CERT.RSA命令打印签名证书信息是否和您设置的一致

    2、请检查在应用级目录的build.gradle中是否配置了debug签名配置和release签名配置,有时候没有配置debug版本,直接运行是默认debug签名文件,会导致6003问题。

    image.pngimage.png

    3、如果有修改AppGalleryConnect控制台应用配置信息,请重新下载agconnect-services.json文件到应用级目录,并清理hms core缓存(应用-应用设置-搜索hms core,清理hms core缓存或者点击右上角更多,卸载更新至最新版本)

     https://developer.huawei.com/consumer/cn/forum/topic/0201761549615690882?fid=18?ha_source=zzh

     

     

  • 相关阅读:
    JDBC加载.properties文件的两种方式
    力扣之斐波那契数列
    地图之战争迷雾/地图算法/自动导航(一)
    详细分析Redis集群故障
    Hive的基本知识与操作
    MyBioSource抗体:Rabbit eIF2alpha 多克隆抗体方案
    centos7安装keepalived 保证Nginx的高可用
    word如何设置页码?教你快速提升文档颜值!
    画图带你彻底弄懂三级缓存和循环依赖的问题
    Redis+整合SpringDataRedis
  • 原文地址:https://blog.csdn.net/weixin_44708240/article/details/125620724