苹果推送通知不再到达

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,也没有收到通知,所以我无法想象这是问题所在?

以上是关于苹果推送通知不再到达的主要内容,如果未能解决你的问题,请参考以下文章

苹果推送通知问题

应用在前台时如何触发苹果推送通知事件?

苹果推送通知错误

苹果推送通知声音

苹果推送通知,定期发出声音嗡嗡声

无需使用互联网、wifi、APNS 和苹果推送通知服务器即可推送通知