在iOS 8设备上没有Xcode的静默通知问题

我一直在测试自iOS 7以来可用的静音通知function。

我的应用程序是针对iOS 7和UP。

我在iPhone6设备上进行测试。

当我的iPhone连接到计算机并且Xcode正在运行应用程序时,我的应用程序中的一切似乎都很好用。 所有静默通知都可以100%运行,并且它们也会显示在我的应用程序中。

但是,如果我停止Xcode并发送静默通知 – 我的设备根本不会收到静音通知。

我做了很多研究,但没有给我答案也没有帮助我确定发生了什么。

我没有杀死我的申请。 所以,这不是问题。 您仍然可以在应用切换器中看到该应用程序。

我的应用程序确实收到定期推送通知(有和没有Xcode)。 问题在于无声通知。

发现这些(但他们没有帮我解决问题):

  1. IOS 8静音推送通知在没有Xcode的情况下无法正常工作
  2. iOS静音推送通知仅在连接到xcode时有效

我已将“优先级”标记添加到我的JSON有效负载中……但仍然没有运气。

这是我的有效负载:

$body['aps'] = array( 'content-available' => 1, 'alert' => $message, 'Priority' => 10, 'sound' => 'default' );

我甚至尝试过“低优先级”。

我的手机确实收到警报并发出声音。 但是,如果用户选择“应用程序图标”而不是横幅提醒 – 它不会收到无提示通知。 仅当我的应用程序未连接并从Xcode运行时才会发生这种情况。

此外,我正在使用开发人员证书和配置文件。

更新1:

发现优先级设置应该是二进制通知的一部分,而不是APNS有效负载。

我从有效负载中删除了“优先级”,并将二进制通知配置为命令2。

请参阅: https : //developer.apple.com/library/mac/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html

用Xcode测试。 一切正常。 没有Xcode测试。 还是同样的问题。 =(

更新2

我在iPhone 4设备上测试了该应用程序。 无声通知可以使用或不使用Xcode。 因此,这必须是iOS 8设备的严格问题。

更新标题仅反映iOS 8.我不知道如何解决iOS 8设备的问题。 有人有什么建议吗?

好的,所以我终于解决了为什么无声通知无法在iOS 8设备上运行的原因。

在您从PHP脚本发送的二进制通知中,优先级必须设置为5.当您不从Xcode运行应用程序时,它将不适用于10。

我不知道为什么应用程序在从Xcode运行时使用了10 – 这就是为什么很难确定出错的原因。 我也不知道为什么优先级为10适用于iOS 7设备。

请参阅: https : //developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html