今天解决了一个困扰我们长达半年的问题,我觉得有必要开始记录一下了。
问题很简单,从某个版本开始,我们的APP收不到推送通知了,调试的时候发现是没有执行didRegisterForRemoteNotificationsWithDeviceToken
也没有执行didFailToRegisterForRemoteNotificationsWithError
证书没有修改过,代码也没有修改过,查了很多资料,试了很多方法都不执行。
期间看了下面这个帖子
这个方法怎么不执行了didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
以为我们遇到的情况跟他们遇到的是同一个情况,就没放在心上。后来证实我们遇到的跟他们遇到的不一样,而是像帖子的8楼这位童鞋说的,是走了分类里的方法。
具体原因是因为我们项目在某个版本中集成了环信的客服系统,而他们的代码里有一个AppDelegate+EaseMob
的分类,分类里也有didRegisterForRemoteNotificationsWithDeviceToken
这个方法,导致我们项目原来的AppDelegate
类里面的方法没有执行,而且分类里的方法没有对deviceToken进行处理,导致我们没有把deviceToken上传到服务器,这样当然收不到推送啦。
网友评论