我创建了一个应用程序并将其上传到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
答案 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版本。