1

目前,我在 appStore 中发布了一个应用程序,但我不知道为什么推送通知不起作用。我的服务器中的 .p12 文件有问题,因为当我的服务器尝试生成推送并将其发送到 Apple 环境时,我可以在日志中看到下一个错误:

02-27 11:42:11,868 [IOSPushNotificationSender] 错误 javapns.notification.PushNotificationManager - 交付错误:javapns.communication.exceptions.InvalidCertificateChainException:无效证书链(收到致命警报:certificate_unknown)!验证您提供的密钥库是根据规范生成的...

2013-02-27 11:42:11,874 [IOSPushNotificationSender] 错误 camMan.server.mobile.ApplePNSSender - javapns.communication.exceptions.InvalidCertificateChainException:无效证书链(收到致命警报:certificate_unknown)!验证您提供的密钥库是根据规范生成的...

好的,我尝试生成一个新的 .p12 文件,但我不记得到底哪个是原始证书 (.cer)。

我尝试从配置文件下载(.cer),但是当我使用钥匙串访问打开它时,该证书没有任何私钥。

所以,我迷路了,我不知道我能做什么......我可以生成一个新的 .p12 文件而不必修改我的应用程序中的任何认证或任何内容吗?我不想在 appStore 中上传我的应用程序的新版本......我只需要知道如何生成或下载或设置新的有效 .p12 文件并再次发送推送通知。

此外,我检查了配置门户中的所有设置,一切都已启用,像我拥有的​​其他应用程序一样活动......所以我认为唯一的问题是 .p12

此外,我仍然拥有与第 12 页相同的密钥/密码……只是我丢失了 CSR (.cer)。

4

3 回答 3

3

听起来您的机器上缺少私钥 - 它已被删除,或者它属于另一台 Mac。

在任何一种情况下,您都可以通过上传新的 CSR(由 Mac 上的 Keychain Access 应用程序创建)简单地撤销现有的 vert 并创建一个新的。

于 2013-02-28T15:11:18.657 回答
2

如果没有私钥,您的证书和配置文件将毫无价值。在仔细阅读 Apple 关于该主题的文档后,将它们全部撤消、全部删除并重新生成新的证书和规定。如果 Xcode 项目没有自动执行此操作,您必须修改 Xcode 项目中的构建设置以使用新设置。这不会影响已获批准且在 App Store 中的应用。

于 2013-02-28T17:00:45.093 回答
1

由于您在开发阶段有推送通知工作,因此您可能熟悉将证书安装到服务器的过程。

如果您丢失了旧文件,您可以随时创建和安装新证书。

您必须注意两件事:

发展阶段:

您正在使用开发推送 SSL 证书

你的目标服务器是:gateway.sandbox.push.apple.com

生产阶段:

您正在使用生产推送 SSL 证书

你的目标服务器是:gateway.push.apple.com

于 2013-02-28T15:29:08.033 回答