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

最后更新时间:2021-07-14 15:34:22

    问题描述

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

    [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
    

    返回码问题排查

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

    厂商通道 返回码 含义 解决建议 厂商通道官方返回码地址
    华为 1001 请确认手机中安装有应用 “华为移动服务” 或 “HMS-Core”,华为推送必须 前往华为应用商店下载安装应用 “HMS-Core” 华为返回码参考
    6003 应用 APK 未打签名或与华为开放平台登记签名信息不一致,华为推送必须 为 APK 文件打上签名或检查签名信息配置是否一致:华为通道配置 App 签名证书指纹
    907135000 appId 不合法
  • 检查华为推送配置文件 agconnect-services.json 文件内 appId 字段内容是否和应用包名匹配
  • 检查配置文件位置是否在工程 app 模块的根目录下(和 app build.gradle 文件同级)
  • 907135702 签名文件的 SHA256 值与在华为推送平台上配置的不一致 前往华为推送平台检查填写的签名文件 SHA256 值是否配置一致(华为支持添加多个)
    907135003 apiclient对象无效;
  • 请检查手机网络是否可以正常访问互联网,或重新进行网络连接
  • 此问题多和华为手机系统应用华为移动服务 HMS-Core 版本不兼容有关,您可以尝试进入华为应用商店搜索 HMS-Core 或华为移动服务,检查是否最新版本并进行升级
  • 小米 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 开关是否开启。

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

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

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

      说明:

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

    • 华为移动服务版本过低
      搜索日志关键字“HMSSDK”,如观察如下类似日志,即 connect versionCode 小于 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推送常见问题汇总