厂商通道注册失败排查指南

最近更新时间:2020-09-01 11:46:37

问题描述

如您的应用接入了厂商通道,但在应用运行日志中观察到如下类似日志:

[OtherPushClient] handleUpdateToken other push token is :  other push type: huawei

表示您的应用注册该厂商通道失败。您可以通过获取厂商通道注册失败的返回码来进行问题定位和排查。

排查步骤

获取厂商通道注册返回码

TPNS Android SDK 提供以下两种方式获取厂商通道注册返回码:

  • 方式一:在应用运行日志中通过过滤关键字 OtherPush,找到如下类似日志来定位厂商通道注册返回码:

     // 华为通道
     // 如果过滤关键字 `OtherPush` 找不到返回码,可以过滤关键字 `HMSSDK`,并注意查看 onResult 或 onConnect 后的返回码
     [OtherPushHuaWeiImpl] other push huawei onConnect code:907135702
    
     // 小米通道
     [OtherPush_XG_MI] register failed, errorCode: 22022, reason: Invalid package name: com.xxx.xxx
    
     // 魅族通道
     [OtherPush_XG_MZ] onRegisterStatus BasicPushStatus{code='110000', message='appId不合法'}
    
     // OPPO 通道
     [OtherPushOppoImpl] OppoPush Register failed, code=14, msg=INVALID_APP_KEY
    
     // vivo 通道
     [OtherPushVivoImpl] vivoPush Register or UnRegister fail, code = 10003
  • 方式二:在 TPNS 注册接口 XGPushManager.registerPush 的回调方法中,通过调用以下接口获取厂商注册返回码:

     /**
          * 获取厂商通道注册失败返回码
          *
          * @param context: 应用上下文
          * @return 0   : 注册成功
          *         其他 : 各厂商注册返回码
          *         -100: 厂商通道开启但未添加依赖
          *         -101: 未开启厂商通道
          * @since v1.1.5.4
          */
     XGPushConfig.getOtherPushErrCode(context);

返回码问题排查

您可以前往各厂商推送的官方文档获取返回码具体含义并进行问题排查。部分常见错误码可参考下表:

厂商通道 返回码 含义 解决建议 厂商通道官方返回码地址
华为 1001 请确认手机中安装有应用 “华为移动服务” 或 “HMS-Core”,华为推送必须 前往华为应用商店下载安装应用 “HMS-Core” 华为返回码参考
6003 应用 APK 未打签名,华为推送必须 为 APK 文件打上签名
907135000 appId 不合法 前往华为推送平台检查应用的包名和 appId 是否匹配
907135702 签名文件的 SHA256 值与在华为推送平台上配置的不一致 前往华为推送平台检查填写的签名文件 SHA256 值是否配置一致(华为支持添加多个)
小米 22006 应用程序 ID 不合法 前往小米推送平台检查应用的包名、appId、appKey 是否匹配 小米返回码参考
22007 应用程序 Key 不合法 前往小米推送平台检查应用的包名、appId、appKey 是否匹配
22022 应用程序 package name 不合法 前往小米推送平台检查应用的包名、appId、appKey 是否匹配
魅族 110000 appId 不合法 前往魅族推送平台检查应用的包名、appId、appKey 是否匹配,⚠️ 是 Flyme 推送平台 的应用信息 魅族返回码参考
110001 appKey 不合法 前往魅族推送平台检查应用的包名、appId、appKey 是否匹配
OPPO 14 无效的 AppKey 参数 请注意 setOppoPushAppId 填入的是 OPPO 的 AppKey,不是 AppId;setOppoPushAppKey 填入的是 Oppo 的 AppSecret,不是 AppKey OPPO 返回码参考
15 缺少 AppKey 参数 补充AppKey 参数
vivo 10003 App 包名与配置不匹配 前往 vivo 推送平台检查应用的包名、appId、appKey 是否匹配 vivo 返回码参考
10004 appkey 不匹配 前往 vivo 推送平台检查应用的包名、appId、appKey 是否匹配
10005 appid 传入错误 前往 vivo 推送平台检查应用的包名、appId、appKey 是否匹配

其他排查

  • 华为推送需要在华为推送平台开启推送服务
    如您在华为设备上无法获取华为 Token,但获取到厂商推送注册返回码为0 ,请前往 华为推送平台,进入【开发】>【推送服务】页面,确认应用的推送开关是否开启;进入【开发】>【项目设置】>【API 管理】页面,确认 Push Kit、App Messaging 开关是否开启。
    推送服务页面显示如下:

    API 管理页面显示如下:

  • 小米推送需要在小米推送平台开启推送服务
    如您未找到小米通道注册返回码,请前往【小米开放平台】>【推送运营平台】,确认应用的消息推送服务是否启用。

  • OPPO 推送需要申请推送功能开通后才能进行正式推送
    OPPO 开放平台 的推送服务界面可以看到已开启服务应用和未开启服务应用,在未开启服务中点击需要申请 Push 权限的应用,进入 Push 服务并点击申请开通。

  • vivo 推送需要申请推送功能开通后才能进行正式推送
    进入【vivo 开放平台】>【推送运营平台】,在【消息推送】>【全部应用】中,所创建应用将会列入在应用名称里,点击【应用名称】选择要申请的应用后单击【提交申请】。

    说明:

    部分厂商推送开关开启生效有约5分钟延迟,若开启开关后仍遇到注册失败,可以稍等片刻再进行尝试。

  • 华为移动服务版本过低
    搜索日志关键字“HMSSDK”,如观察如下类似日志,即 connect versionCod 小于 connect minVersion,表示系统应用“华为移动服务”或“HMS_Core”版本较低,请做升级后尝试重新注册。

    I/HMSSDK_HuaweiApiClientImpl: ====== HMSSDK version: 20601301 ======
    I/HMSSDK_HuaweiApiClientImpl: Enter connect, Connection Status: 1
    E/HMSSDK_Util: In getHmsVersion, Failed to read meta data for the HMS VERSION.
    I/HMSSDK_HuaweiApiClientImpl: connect minVersion:20600000
    I/HMSSDK_HuaweiMobileServicesUtil: connect versionCode:20301306
    D/HMSAgent: connect end:-1001
  • vivo 部分机型不支持推送服务
    vivo 推送仅支持部分较新的机型和对应的系统及以上系统,详情请参考 vivo推送常见问题汇总
目录