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

Silent Notification Issues without Xcode on iOS 8 Devices

我一直在测试自 iOS 7.

以来可用的静默通知功能

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

我正在 iPhone6 设备上进行测试。

当我的 iPhone 连接到计算机并且 Xcode 是 运行 应用程序时,我的应用程序似乎一切正常。所有静默通知都 100% 有效,它们也会出现在我的应用程序中。

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

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

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

我的应用程序确实会定期收到推送通知(有和没有 Xcode)。问题出在静默通知上。

找到了这些(但没有帮我解决问题):

  1. IOS 8 Silent push notification not working without Xcode
  2. iOS silent push notification only works when connected to xcode

我也已将 "Priority" 标签添加到我的 JSON 有效负载中......但仍然没有成功。

这是我的有效载荷:

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

我什至 "priority" 都试过了 lower-cased。

我的 phone 收到警报并发出声音。但是,如果用户选择 "app icon" 而不是横幅警报——它不会收到静默通知。只有当我的应用程序未连接并且 运行 来自 Xcode.

时才会发生这种情况

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

更新 1:

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

我从负载中删除了 "priority" 并将二进制通知配置为命令 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.

我不知道为什么应用程序在 Xcode 中的 运行 时使用 10 -- 这就是为什么很难确定问题所在的原因。我也不知道为什么 10 的优先级适用于 iOS 7 台设备。

查看:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html