我已经在我的应用程序中实现了apns,它一直工作到昨天没有任何问题。今天它突然停止工作,并且没有调用以下方法:
-(void) application:(UIApplication) applicaton didRegisterForRemoteNotificationWithDeviceToken:(nonnull NSData *) deviceToken;
我没有找到任何正当理由。我的iOS版本是9.3.2;
在设备日志中,我看到以下错误消息:
无法验证证书链 courier.sandbox.push.apple.com
我出厂重置设备,但它没有工作。
有趣的是,apns可以在我的其他设备上使用相同的iOS版本。
更有趣的是,在同一台设备上,我的另一个测试推送应用程序(相同的代码复制和粘贴)工作正常。
有人有任何想法解决这个问题吗?
提前致谢。
答案 0 :(得分:4)
类似的问题今天也发生在3个测试手机上,全部运行iOS 9.3.2。一个是iPhone5,另一个是iPhone 6.
以下见解可能有助于避免此问题,直到修复:
我看到只有在使用开发证书对应用程序进行签名时才会出现此问题。在生产环境中,一切似乎都按预期工作(常规APNS和VoIP APNS)。
此问题仅可在我们的某个应用中重现。一个不同的应用程序,即使签名为开发,也按预期工作(即系统调用didRegisterForRemoteNotificationWithDeviceToken)。
在iOS 8.4.1手机上测试有问题的应用时,无论是常规APNS还是VoIP APNS,问题都无法重现。
2016年7月20日更新: 看来这是APNS Sandbox环境中的一个临时问题,今天一切都恢复正常。
答案 1 :(得分:1)
似乎是苹果推送通知沙箱服务器的问题。今天它正在发挥作用。