苹果推送通知不再到达
Posted
技术标签:
【中文标题】苹果推送通知不再到达【英文标题】:Apple push notifications not arriving anymore 【发布时间】:2014-11-01 14:47:30 【问题描述】:在使用 PushSharp 一年多没有问题后,我们的 ios 应用用户突然不再收到任何推送通知。应用和 APN 证书仍然有效,我们的服务器端没有任何更改。
为了确保我创建了一个新的 APN 生产证书并将其上传到我们的推送服务器,但没有帮助。
此外,我已经测试了来自 Mac OS X 商店的两个独立推送通知测试器应用程序(它们允许您添加证书、令牌和有效负载)并尝试从那里向自己发送推送消息。所有尝试的结果都是响应:“Payload has been push”、“Push message sent”。
我的 iPhone 拒绝接收任何推送通知,我的所有其他设备也是如此。我不知道出了什么问题或如何调试此问题,因为我的服务器没有从 Apple Push Notification Server 检索任何错误。消息看起来总是发送到 Apple,但 Apple 似乎没有将它们发送到用户的设备。
这怎么可能?会发生什么?
【问题讨论】:
【参考方案1】:这可能是因为 Apple 已取消对 SSL 3.0 的支持 - http://news.softpedia.com/news/Apple-Push-Notification-Service-To-Drop-Support-for-Buggy-SSL-3-0-462950.shtml
【讨论】:
如果 PushSharp 和那两个 OS X 推送测试器使用 SSL3,这可能是可能的。我怎样才能找到它? 确实是问题所在,谢谢。我什至不知道这一点,似乎 PushSharp 已经更新了他们的库来修复它!我很不幸,这两个工具(我从 OS X 商店测试过)都没有解决这个问题,所以我认为还有另一个问题。【参考方案2】:这可能是因为,从 iOS 8 开始,Apple 改变了在您的应用中注册推送通知的方式。新方法是:
if([[UIApplication sharedApplication] respondsToSelector:@selector(registerUserNotificationSettings:)])
[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeSound | UIUserNotificationTypeAlert | UIUserNotificationTypeBadge) categories:nil]];
[[UIApplication sharedApplication] registerForRemoteNotifications];
else
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert)];
【讨论】:
我的一台设备使用 iOS7,也没有收到通知,所以我无法想象这是问题所在?以上是关于苹果推送通知不再到达的主要内容,如果未能解决你的问题,请参考以下文章