集成 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控制台检查该证书值与应用信息页配置的是否相同(指纹可以配置多 个):

public String getSignatures(Activity activity) {
        PackageInfo info;
        try {
            info = activity.getPackageManager().getPackageInfo(activity.getPackageName(), PackageManager.GET_SIGNATURES);
            byte[] cert = info.signatures[0].toByteArray();
            MessageDigest md = MessageDigest.getInstance("SHA256");

            byte[] publicKey = md.digest(cert);
            StringBuffer hexString = new StringBuffer();
            for (int i = 0; i < publicKey.length; i++) {
                String appendString = Integer.toHexString(0xFF & publicKey[i]).toUpperCase(Locale.US);
                if (appendString.length() == 1) {
                    hexString.append("0");
                }
                hexString.append(appendString);
                hexString.append(":");
            }
            String value = hexString.toString();
            String msg = "SHA256:" + value.substring(0, value.length() - 1);
            Log.d(TAG, msg);
            return value.substring(0, value.length() - 1);

        } catch (NoSuchAlgorithmException | PackageManager.NameNotFoundException e) {
            e.printStackTrace();
        }
        return null;
}


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
{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/4478396/blog/5551203