使用开发证书 iOS 推送通知无法正常工作

5

情况:我们在不同的后端URL上安装了PROD和DEV APN证书。生产证书有效:推送被成功送达。

DEV证书无效,苹果服务器返回错误代码7(无效令牌)。我已经检查了所有相关问题,但可能还有遗漏。

  • 应用ID正确(与prod使用相同)
  • 我使用正确的后端(安装了DEV证书)
  • 我以DEBUG模式从XCode启动应用程序(对应于DEV环境)
  • 我使用正确的应用程序开发证书,来自同一帐户
  • 我使用正确的dev配置文件(支持推送)

理论上应该能够正常工作,对吧?


你在创建开发APN后进行了测试吗?请尝试在.pem文件上执行以下操作:**$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert YourCertHere.pem -key YourKeyHere.pem**,然后替换文件名,接着输入 **Enter pass phrase for YourKeyHere.pem:**,之后你应该能够看到它们是否正常。 - Silviu St
我遇到了同样的问题。升级到iOS 9后,我的应用程序在开发模式下突然无法接收通知。也就是说,应用程序是从XCode安装的,并且使用dev证书发送通知。似乎令牌无效,但我遵循了苹果的说明。每次启动应用程序时都会获取令牌。真正奇怪的是,如果我通过prod证书发送通知,开发应用程序可以接收它!似乎iOS系统以某种方式认为我的应用程序处于生产状态? - Shawn
@Shawn 我这里也有同样的问题。我认为苹果又搞砸了:https://forums.developer.apple.com/thread/19993 - Eric Chen
原来我们生成了错误的mobileprovision文件。那就算了。 - Eric Chen
我也在使用开发证书运行我的应用程序,并使用授权API接收通知,但当我从服务器发送通知时,会出现设备令牌错误@ArnieSchwarzvogel。 - Mansuu....
2个回答

2

如果使用IOS 9,请从Apple生产推送通知证书发送通知,这将起作用。

从生产APS证书制作pem文件,并在开发和生产模式下使用此文件。

此外,在两种情况下都使用生产网关,即“gateway.push.apple.com:2195”

即使在开发模式下发送通知,也不要使用“gateway.sandbox.push.apple.com:2195”。


0
手机推送通知返回的设备标识在生产环境和开发环境中是不同的。确保你的服务器在向 APNS 发出请求时使用实际的开发设备标识(我指的是设备标识而不是证书)。 如果你的设备已经运行了应用程序的生产版本,则生产环境的标识可能已经存在于你的数据库中,并且你的服务器可能会尝试使用它。这取决于你如何处理用户帐户。

我曾经遇到过同样的问题。请查看上面的评论。如果你有任何想法,请告诉我。谢谢。 - Shawn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接