【问题标题】:iOS Push Notifications not working with Development certificateiOS推送通知不适用于开发证书
【发布时间】:2015-08-20 09:21:31
【问题描述】:

情况:我们在不同的后端 URL 上安装了 PROD 和 DEV APN 证书。生产证书有效!:推送已交付。

DEV 证书不起作用,Apple 服务器返回错误代码 7(无效令牌)。我已经检查了所有的东西,但可能我仍然缺少一些东西。

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

应该真的有效,对吧?

【问题讨论】:

  • 你在创建dev apn后测试了吗?在 .pem 文件上试试这个:$ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert YourCertHere.pem -key YourKeyHere.pem 并替换文件名,然后 Enter YourKeyHere.pem 的密码短语: 之后您应该看看它们是否正常
  • 我遇到了同样的问题。升级到 iOS 9 后,我的应用在开发模式下突然无法收到通知。也就是说,从 XCode 安装应用程序并使用开发证书发送通知。令牌似乎无效,但我遵循了 Apple 的指示。每次启动应用程序时都会获取令牌。真正奇怪的是,如果我通过 prod cert 发送通知,开发应用程序可以收到它! iOS 系统似乎以某种方式认为我的应用正在生产中?
  • @Shawn 这里有同样的问题。我认为苹果又搞砸了:forums.developer.apple.com/thread/19993
  • 原来我们有一个错误生成的 mobileprovision 文件。那没关系。
  • 我也可以使用 dev cert 运行我的应用程序并使用 auth api 接收通知,但是当我从服务器发送通知时,它给出了错误的设备令牌错误@ArnieSchwarzvogel

标签: ios push-notification certificate profile apn


【解决方案1】:

如果是 IOS 9,请从 Apple Production Push 通知证书发送通知,它将起作用。

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

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

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

【讨论】:

    【解决方案2】:

    手机返回的推送通知的设备令牌在生产和开发中是不同的。向 APNS 发出请求时,请确保您的服务器使用实际的开发设备令牌(我不是在谈论证书,而是在谈论设备标识符)。

    如果您的设备已经运行了应用的生产版本,生产令牌可能在您的数据库中,您的服务器可能会尝试使用它。不过,这取决于您如何处理用户帐户。

    【讨论】:

    • 我遇到了同样的问题。请看上面的评论。如果您有任何想法,请告诉我。谢谢。
    猜你喜欢
    • 2016-10-07
    • 2011-12-25
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2012-04-12
    • 2017-09-26
    • 1970-01-01
    相关资源
    最近更新 更多