推送通知不适用于应用程序商店应用程序 - iphone

时间:2011-03-03 20:13:16

标签: iphone push-notification

我创建了一个应用程序并将其上传到itunes。现在推送通知不起作用。在开发过程中,它运行良好。 我也使用此命令来测试应用程序:

codesign -dvvvv --entitlements - / path / to / App

它有以下关键:

  

< plist version =“1.0”>
  <字典>
  <密钥GT;应用标识符LT; /键>
  <串GT; UFWA3A8K32.com.etubez.webmap< /串GT;
  <密钥GT; APS-环境< /键>
  <串GT;生产< /串GT;
  <钥匙>获得任务,允许< /键>
  <假/>
  <密钥GT;钥匙串存取组< /键>
  <阵列>
  <串GT; UFWA3A8K32.com.etubez.webmap
  < /阵列>
  < /字典>
  < / plist中>

然后我尝试为adhoc创建分发证书,并尝试安装它来运行生产环境的推送,但这些都不起作用。 php webservice返回一切正常:

星期四,2011年3月3日21:03:14 +0100 ApnsPHP [3231]:信息:尝试ssl://gateway.push.apple.com:2195 ...星期四,03三月2011 21:03 :19 +0100 ApnsPHP [3231]:信息:连接到ssl://gateway.push.apple.com:2195。星期四,2011年3月3日21:03:19 +0100 ApnsPHP [3231]:信息:发送消息队列,运行#1:1消息留在队列中。星期四,2011年3月3日21:03:19 +0100 ApnsPHP [3231]:状态:发送消息ID 1 [自定义标识符:消息 - 标记-3](1/3):253个字节。星期四,03三月2011 21:03:19 +0100 ApnsPHP [3231]:信息:已断开连接。

但我没有收到任何推送通知。

我也曾尝试再次创建证书n次3-4次但不能正常工作。 在这方面有谁能帮助我?

编辑:我正在使用此方法创建证书: http://code.google.com/p/apns-php/wiki/CertificateCreation 一个用于沙箱和生产开发的证书。

非常感谢,
NAV

3 个答案:

答案 0 :(得分:4)

我随身携带这张清单。这有助于找到可能的原因。您还可以从设备获取APNS日志(如果您有权访问..)并查看它是否有帮助。

APNS CheckList

  • 提供商应安装Entrust Secure Server CA根证书。这允许TLS / SSL验证完整的APNs服务器证书链。可以从Entrust的站点下载此根证书。

  • 来自开发环境的设备令牌不适用于生产推送服务。每个推送环境都会为同一设备发出不同的令牌。如果将无效的设备令牌发送到错误的环境,则推送服务会将其视为无效令牌并丢弃该通知。

  • 如果您从设备中删除应用程序,然后向其发送推送通知,则您可能会拒绝设备令牌,并且无效设备令牌应出现在反馈服务上。但是,如果这是设备上最后一个支持推送功能的应用,则它不会显示在反馈服务中。这是因为删除最后一个应用程序会删除与推送服务的持久连接,然后才能发送删除通知。

  • 推送提供商通常落后于防火墙。要发送通知,您需要打开TCP端口2195。要访问反馈服务,您需要打开TCP端口2196。通过Wi-Fi连接到推送服务的设备需要打开TCP端口5223.

  • 推送服务的IP地址范围可能会发生变化;期望提供者将通过主机名而不是IP地址进行连接。但是,整个17.0.0.0/8地址块已分配给Apple,因此您可以在防火墙规则中指定该范围。

  • 我们可以启用APNS日志记录,在设备上安装配置文件APNsLogging.mobileconfig,方法是将文件放在Web服务器上,然后使用设备上的Safari下载它,或者将其作为电子邮件附件发送并打开您设备上Mail中的附件。我们可以使用mdm推送个人资料。

可以找到更多信息here

答案 1 :(得分:1)

我遇到了同样的问题,并从应用商店安装了一个控制台应用,并发现了一条消息“找不到有效的应用程序的环境'字符串”

我忘了向权利文件添加推送通知,因此从应用商店下载时没有注册推送通知。

答案 2 :(得分:0)

确保从您的设备卸载应用程序并清理安装AppStore版本。