APNS:无法验证 courier.sandbox.push.apple.com 的证书链 - 未调用 didRegisterForRemoteNotificationWithDeviceToken

Posted

技术标签:

【中文标题】APNS:无法验证 courier.sandbox.push.apple.com 的证书链 - 未调用 didRegisterForRemoteNotificationWithDeviceToken【英文标题】:APNS: Failed to validate certificate chain for courier.sandbox.push.apple.com - didRegisterForRemoteNotificationWithDeviceToken is not being called 【发布时间】:2016-07-19 08:39:20 【问题描述】:

我已经在我的应用程序中实现了 apns,它一直工作到昨天没有任何问题。今天突然停止工作并且没有调用以下方法:

-(void) application:(UIApplication) applicaton didRegisterForRemoteNotificationWithDeviceToken:(nonnull NSData *) deviceToken;

我没有找到任何正当理由。我的 ios 版本是 9.3.2;

在设备日志中我看到以下错误消息:

无法验证证书链 courier.sandbox.push.apple.com

我将设备重置为出厂设置,但它不起作用。

有趣的是,apns 可以在我的其他具有相同 iOS 版本的设备上运行。

更有趣的是,在同一设备上,我的另一个测试推送应用程序(相同的代码复制和粘贴)工作正常。

有人有办法解决这个问题吗?

提前致谢。

【问题讨论】:

我的设备从今天开始遇到同样的问题,不知道如何解决。 另外,从今天开始,某些有效令牌的推送将不再接收。 看起来沙箱无法正常工作:forums.developer.apple.com/thread/52224 检查这个...***.com/a/38456437/4601170 @TheBronx 对,沙盒存在一些问题,因为生产工作正常......可能是由于一些更新或一些问题 【参考方案1】:

我今天在 3 部测试手机上也发生了类似的问题,它们都运行 iOS 9.3.2。一个是 iPhone5,另一个是 iPhone 6。

在解决之前,以下见解可能有助于避免该问题:

    我看到只有在使用开发证书签署应用程序时才会出现该问题。在生产环境中,一切似乎都按预期工作(对于常规 APNS 和 VoIP APNS)。

    这个问题只能在我们的一款应用上重现。一个不同的应用,即使作为开发签名,也能按预期工作(即系统调用了 didRegisterForRemoteNotificationWithDeviceToken)。

    在 iOS 8.4.1 手机上测试有问题的应用程序(常规 APNS 和 VoIP APNS)时,该问题无法重现。

2016 年 7 月 20 日更新: 这似乎是 APNS 沙盒环境中的临时问题,今天一切恢复正常。

【讨论】:

关于应用程序不工作和正常工作之间可能有什么区别的任何提示? 我能发现的唯一主要区别是,不工作的应用程序当前在 iTunes 连接上,而工作的应用程序不在。【参考方案2】:

看来,这是苹果推送通知沙箱服务器的问题。今天它正在工作。

【讨论】:

以上是关于APNS:无法验证 courier.sandbox.push.apple.com 的证书链 - 未调用 didRegisterForRemoteNotificationWithDeviceToken的主要内容,如果未能解决你的问题,请参考以下文章

转换到 APNS 身份验证密钥的过程是啥?

APNS 或 GCM 设备令牌验证

将 APNs 从证书升级到身份验证令牌是不是会使现有的 deviceToken 失效?

APNS:如果使用 Auth Key,是不是需要 APNS 证书?

从 ASPX/C# 页面发送 APNS,使用 SSL 进行身份验证

APNS SSlStream 身份验证失败,因为远程方已关闭传输流