我一直在使用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服务发送通知。不知道这是否有所不同。
答案 0 :(得分:5)
使用EC2推送通知效果很好。在几个应用程序中使用/实现它。这里有几件事需要检查
连接到APN服务器时是否出错?尝试使用$ telnet gateway.push.apple.com 2195
。它有用吗?如果不是,您可能需要更改安全组/打开必要的端口
如果服务器显示邮件已成功发送,但您未在应用中收到,请确保检查正在使用的mobileprovision和pem文件
既然你提到了telnet的工作,你已经检查了pem和mobileprovisions,还有其他一些要检查的东西
当MoonAPNS尝试连接到APN服务器时,您是否收到任何错误?
如果没有返回错误,您是否检查了设备令牌是否存储在数据库中并且它是您的测试设备的令牌?
如果邮件发送正常,您是否ping了反馈服务?他们是否为特定设备令牌(即您的设备)返回错误?
答案 1 :(得分:2)
事实证明,这与亚马逊ec2并没有特别关系,而是一些不仅应该是显而易见的事情,而且我之前也遇到了一个问题。
我正在使用MoonAPNS,问题是这一行中的第一个参数:
PushNotification push = new PushNotification(true, certificate, password);
true
参数告诉MoonAPNS将通知发送到Apple的沙盒服务器。
false
告诉它发送到生产服务器。
我在自己的服务器上有false
,在亚马逊ec2上有true
。
两者现在都是false
,通知终于从ec2发出。
感谢大家的努力。