4

我一直在使用 ad-hoc 发行版测试我的 iPad 应用程序。

在我们的服务器(运行 Windows Server 2008)上,APNS 警报通过正常。

在 ec2(也运行 Windows Server 2008)上,它们永远不会出现。

两个 ad-hoc 版本之间的唯一区别是它们指向的服务器。两者都具有相同的代码签名设置。

我按照相同的程序在两台服务器上导入证书,据我所知,两台服务器上的证书完全相同。

我还打开了端口 5223、2196、2195 和 443 并允许 17.0.0.0/8 地址块:

在此处输入图像描述

我什至尝试关闭防火墙,但没有任何乐趣,我仍然无法弄清楚为什么它可以在一个上工作,而在另一个上不行。

有人有想法么?

-编辑-

我正在使用 MoonAPNS 来处理通过 C#/ASP.Net Web 服务发送通知。不知道这是否有什么不同。

4

2 回答 2

5

使用 EC2 推送通知效果很好。在几个应用程序中使用/实现它。这里有几件事要检查

  1. 连接到 APN 服务器时是否出现错误?尝试使用$ telnet gateway.push.apple.com 2195. 它有效吗?如果没有,您可能需要更改安全组/打开必要的端口

  2. 如果服务器说消息发送成功,但您没有在应用程序中收到它,请确保检查您正在使用的 mobileprovision 和 pem 文件

既然你提到了 telnet 工作并且你已经检查了 pem 和 mobileprovisions,还有一些其他的事情要检查

  1. 当 MoonAPNS 尝试连接到 APN 服务器时,您是否收到任何错误?

  2. 如果没有返回错误,您是否检查了设备令牌是否存储在您的数据库中并且它是您的测试设备的令牌?

  3. 如果消息发送正常,您是否 ping 反馈服务?他们是否返回特定设备令牌(即您的设备)的错误?

于 2013-04-23T18:10:20.480 回答
2

事实证明,这与 Amazon ec2 没有什么特别的关系,而是不仅应该很明显,而且我之前也遇到过问题。

我正在使用 MoonAPNS,问题是这一行的第一个参数:

PushNotification push = new PushNotification(true, certificate, password);

true参数告诉 MoonAPNS 将通知发送到 Apple 的沙箱服务器。

false告诉它发送到生产服务器。

false在我们自己的服务器和true亚马逊 ec2 上都有。

两者都是现在false,并且通知最终来自 ec2。

感谢大家的努力。

于 2013-04-24T11:15:45.707 回答