iOS网络问题引起极光推送服务器连接失败

前言:问题最终的解决办法很简单,主要是记录分析解决问题的过程

今天下午在模拟器上适配iPhoneX时一切正常,切换真机运行时突然所有的页面都加载不出来,同时极光推送打印一大堆log(忘记截图),什么DNS解析失败,udp scoket失败,巴拉巴拉一大串,主要意思就是服务器连接失败。由于所有页面都加载不出来,检查网络请求,发现所有请求都是超时:Error Domain=NSURLErrorDomain Code=-1001 "The request timed out." 。当时第一反应就是公司服务器挂掉了(捂脸,想的好多)!赶紧拿出自己手机打开线上app,发现线上的没问题(额,好像服务器没挂)。

既然服务器没挂,开始排查问题。首先再次切换到模拟器运行,依然正常运行没有问题,由于Xcode模拟器不支持推送,而测试机上运行的时候有一大堆的失败log,基本确定是推送的问题。

  1. 首先考虑可能是SDK的bug,是不是需要升级到最新版本,查看SDK版本,目前已经是最新版,不是需要升级解决的问题。再次对照文档的集成步骤查看,代码也没有问题,由于推送功能处没有修改,而且一直是正常使用的,想着可能是Xcode抽风,把测试机上的版本卸载掉重新运行。然而运行后问题并没有解决,但是极光打印的失败log变了,这次直接没有走didRegisterForRemoteNotificationsWithDeviceToken:

    极光失败log

  2. 谷歌了一下不走didRegisterForRemoteNotificationsWithDeviceToken:方法的原因,看到有因为集成环信重写这个方法而没走极光注册device token导致问题的,而我项目中没有集成其他功能重写这个方法。检查了推送证书也没有过期,再次检查了项目中推送的相关配置也没有问题。最后检查网络问题,公司的3个Wi-Fi账号全部切换尝试一遍问题依然存在,第四次打开自己的4G网络,把测试机和Mac都连上个人热点,再次运行,问题解决了!再切换回公司内网也没问题了。。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 极光推送: 1.JPush当前版本是1.8.2,其SDK的开发除了正常的功能完善和扩展外也紧随苹果官方的步伐,SD...
    Isspace阅读 11,724评论 10 16
  • 推送技术产生场景: --服务器端主动性: 客户端与服务器交互都是客户端主动的, 服务器一般不能主动与客户端进行数据...
    原军锋阅读 35,081评论 4 60
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,174评论 19 139
  • 不同版本极光推送SDK集成各有差异,集成时一定要注意版本号,楼主已将博文更新成最新的SDK JPush v3.0....
    i顺颂时宜阅读 12,383评论 37 170
  • 我是一个很不会玩的人,刻板,认真,以前还不会读书,著名生涯规划师赵昂老师说过一段话: “学习”这件事是明亮书房里,...
    胡誠阅读 3,638评论 2 7

友情链接更多精彩内容