5

我一直在寻找这个问题的答案,但似乎找不到。我将 PUSH 通知发送到我的应用程序的多种风格。我之前已将其设置为循环遍历每个证书并将其与用户应用程序类型匹配。实际上,我为每个证书创建了一个新的 SSL 连接,然后为该特定证书发送任何通知。

转换所有这些证书并在它们到期时安装它们有点繁琐。我可以将 KeyChain 访问中的多个证书导出为单个 p12 文件并将其转换,这有助于从证书管理的角度使事情变得更简单。问题在于没有收到我的 PUSH 通知。我可以成功连接到 APNS,反馈服务没有报告任何问题,但似乎没有任何问题。这使我相信 APNS 正在验证文件中唯一的第一个证书,并忽略任何其他允许成功连接但可能会阻止发送通知的证书。在这种情况下,我希望连接断开或反馈服务上报告的内容,但到目前为止我还没有看到。

有没有人对成功做到这一点有任何见解?谢谢你。

4

1 回答 1

3

让我重申一下:您将多个证书一起打包到一个容器/集合/任何东西中,并且您正在使用它与 APNS 建立相互身份验证的 SLL 会话。然后,您发送与任何一个证书关联的一个或多个设备的请求,但它不起作用。那准确吗?

如果是这样,那么我认为您对问题的总结是正确的。事件的顺序是在建立 SSL 会话时评估证书。这是网络协议的一部分,此时 APNS 服务器必须选择使用哪个证书。然后,当您发送请求时,“应用程序服务器”仅验证设备令牌包含与证书相同的帐户信息。你的场景很重要,除非 Apple 明确投入支持它,否则它不可能工作。在那种情况下,我希望它会在开发人员文档中被提及。它不是。

在这种情况下,您也不会在反馈服务中看到任何内容,因为只会为与证书中的帐户关联的设备收集/发送反馈。

顺便说一句,如果您使用的是 APNS 协议的增强格式,那么您可以在发送时读取错误响应。有关更多信息,请参阅编程指南

于 2012-12-08T21:47:09.177 回答