iOS 在大陆能正常收到推送,香港没法收到


#1

苹果开发者中心证书方面没有过期,开发环境与生产环境都已验证


#2

请首先检查网络状态

推送异常提问

  • 推送请求失败, JPush 会以异常抛出,捕获异常( try catch )可获得 JPush 返回的错误信息,如:
{"msg_id": 699616375, 
 "error": {
     "message": "cannot find user by this audience", "code": 1011
   }
};

根据异常 Message 和 code 内容在列表中找到对应说明进行排查问题,并可在社区搜索报错,大部分都有更完整的排查步骤。

  • 推送请求成功,而你们认为客户端没有收到

  • 请优先根据总结自行排查一下
    Android 收不到消息排查
    iOS 收不到消息排查

  • 排查无果,需要官方协助查询,请说明你根据排查步骤已确认有哪些信息是正确的,并务必提供如下两个信息,缺一不可:

    • Message ID(调用 API 请求成功后会返回 msgid ,官网 - 推送历史 - 操作 - i 详情里面也可以查看该信息,如果查不到历史请注意筛选条件,历史只保存 30 天)
    • 测试设备的 registrationID(不管是广播、别名、标签还是其他方式推送,均必须提供该信息),该信息只能在客户端调 API 获取,服务端无法取到,服务端若需存储请让客户端获取后上传 。
      iOS 的 registrationID 获取方法点我
      Android 的 registrationID 获取方法点我


#3

现在难处就是香港那边我只能发内测包给他们测试,没办法在开发环境下测试。


#4

你只描述了现象,没有说明实际的难处是什么,这导致你无法配合排查吗?

如果是取不到 registrationID 信息,那么在代码里面获取 ID 后上传给你服务器,这样就可以知道了


#5

香港那边只负责测试,没有开发人员,我获取不到错误信息,所以我也还在排查中,我先按照你思路看看,稍后有问题再继续询问


#6

我想了解一下 registrationID 是你们返回给我后,还要我传回我们后台服务器是吗?


#7

registrationID 信息,是极光服务器在接收到客户端的注册后,返回给客户端的,你们的服务端需要该信息的话,只能让客户端上传过来。

让测试人员学习使用一下 xcode 工具,获取一下客户端日志应该不太难,或者也可以考虑远程操作一下呀


#8

有客户端注册失败的回调代理吗?


#9

没有回调,如果失败,会打印一些日志,能不能取到registrationID 也是是否注册成功的一个标志。


#10

注册失败的话,这个方法会走吗?


#11

或者注册成功那个时机有吗?我就是想能显示些东西在前端看,这样测试人员一看就知道是不是成功了


#12

或者这个方法,注册成功 registrationID是有一串东西,如果失败的话,registrationID返回是不是nil?


#13

你可以参考下我们的 demo ,就是把registrationID值展示在首页的,如果失败,取不到registrationID,值应就为空。


#14

能提供具体demo链接吗


#15

就在下载的 SDK 包里面
https://docs.jiguang.cn/jpush/resources/


#16

我现在在这里发广播,香港那边可以收到推送消息


#17

但是目前是没登录APP时收到的