无法从Apple APN生产服务器获得响应

时间:2014-08-28 06:18:52

标签: ios apple-push-notifications http-status-code-504

我们有一个使用APNs服务的应用程序,而应用程序的后端/服务器位于.net中。我创建了dev和prod Cert。对于应用程序并将生产证书放在生产服务器上。

我们在接收推送通知方面没有任何问题,并且开发服务器上的所有内容都可以正常使用开发证书。问题出在生产服务器上,当我们点击触发推送通知但没有发送响应的Web服务时,在请求超时后它会给出504响应。

是否有人面临同样的问题或任何人可以帮助摆脱这个问题?

P.S我已经在实时服务器上评论了推送通知代码并且工作正常,所以我确信这个问题与推送通知服务有关。

2 个答案:

答案 0 :(得分:1)

  

可以使用生产环境的二进制接口   通过gateway.push.apple.com,端口2195;的二进制接口   开发环境可通过   gateway.sandbox.push.apple.com,端口2195。

请参阅:https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/CommunicatingWIthAPS.html

一个。在推送通知时确保使用正确的链接

For Development ,您可以使用:gateway.sandbox.push.apple.com

对于制作,您使用:gateway.push.apple.com

B中。当您将XCode项目直接构建并运行到连接的设备时,生成的IPA正在使用开发配置证书。因此,生产推送通知不会发送到设备。很久以前,当我开始学习推送通知时,我犯了这个错误。

要在设备上测试生产推送通知,您必须: -

  1. 从您的设备中删除该应用。

  2. 确保"发布"下的配置文件;正在使用 ad-hoc分发个人资料。 enter image description here

  3. 使用存档生成临时配置 IPA 。将IPA导出到桌面或任何您喜欢的地方。

  4. 从XCode打开管理器,转到"设备"。将新生成的IPA拖放到当前连接设备的应用程序中。

  5. 您设备上可用的应用现在正在使用分发证书。与开发证书的设备令牌相比,它发送到服务器的设备令牌将是不同的。因此,您必须使用正确的设备令牌。

  6. 如果您正确执行所有操作,则应收到生产推送通知。

答案 1 :(得分:0)

经过大量的应用程序调试并再次创建证书但在我阅读关于推送通知的苹果文档中的文档之前,这对我的原因没有帮助:

  

根据apple的说法,这些端口应该在Web服务器上打开   发送通知。以下是他们写的内容   APN的支持文档。

     

推送服务使用的IP地址范围

     

推送提供程序(Web服务器)通常位于防火墙后面。发送   通知,您将需要允许入站和出站TCP数据包   通过端口2195.要获得反馈服务,您需要允许   端口2196上的入站和出站TCP数据包。

https://developer.apple.com/library/ios/technotes/tn2265/_index.html#//apple_ref/doc/uid/DTS40010376-CH1-TNTAG31

虽然我的托管服务提供商尚未在托管我网站的服务器上打开这些端口。

谢谢大家帮我解决这个问题。