【发布时间】:2014-01-17 08:31:25
【问题描述】:
我已经检查了 iPhone 4、4s、5 中的推送通知以及 IOS 版本 5.1 到 7.0,它运行良好。稍后,我使用 IOS 版本 6.1.2 签入 iPhone 3GS 设备并遇到奇怪的异常,因为我无法在 iPhone 3GS 设备中收到任何通知。
我重新检查了证书、pem 文件但没有收到任何通知。这个委托方法也被调用,我在 iPhone 3GS 设备中收到了设备令牌。
- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken
但是,当通过 PHP 脚本向相关 iPhone 3GS 设备发送任何通知时,我不会得到任何响应。我的假设是 Apple 可能不会向他们的旧设备发送推送通知。
我已经认真学习了本教程,但对于 iPhone 3GS 设备来说都是徒劳的。
http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1
如果有任何问题,请给我您宝贵的反馈意见以纠正此问题。
【问题讨论】:
-
如果在其他设备上收到通知,aps 证书(至少其中一个)没有任何问题。请注意,development 设备令牌不同于 ad-hoc 或 production(发布)设备令牌。当您从 xcode 进行测试时,您将获得开发令牌,并且您必须使用开发证书和沙箱服务器连接来传递通知。在使用 ad-hoc 或其他发布版本进行测试时,您必须使用生产令牌、生产证书和生产服务器连接。还要确保检查设备设置(通知)。
-
@rokjarc:我相信你找到了原因。如果您发布答案,我会投赞成票。
-
@rokjarc:感谢您的支持。我知道设备令牌是特定于应用程序的,它会从应用程序更改为应用程序。设备令牌在开发和分发配置文件中也有所不同。我已经生成了不同的分发证书并进行了所需的测试,但在 iPhone 3GS 设备中没有收到任何通知。我从同一配置文件的其他设备中收到通知。我也检查了设备设置,在设置->通知中心里没问题。
-
实际上Apples的服务器使用SSL数据(证书信息)来区分应用程序。生产 APNS 令牌(例如)实际上对于所有应用程序的一台设备都是相同的(对此不是 100% 确定)。如果此 3GS 设备是您用于开发的手机,请尝试从中删除所有配置文件,删除您的应用并重新安装。然后再次测试。
-
在您的 3GS 上.. 您收到其他推送通知?越狱了吗?
标签: ios iphone objective-c notifications push-notification