推送通知不适用于应用商店应用程序 - iphone
Posted
技术标签:
【中文标题】推送通知不适用于应用商店应用程序 - iphone【英文标题】:push notifications not working on app store application - iphone 【发布时间】:2011-07-08 08:17:49 【问题描述】:我创建了一个应用程序并将其上传到 iTunes。推送通知现在不起作用。在开发中它运行良好。 我也使用这个命令来测试应用程序:
codesign -dvvvv --entitlements - /path/to/App
它有以下键:
应用程序标识符 UFWA3A8K32.com.etubez.webmap aps-环境 生产 get-task-allow 钥匙串访问组 UFWA3A8K32.com.etubez.webmap数组>
然后我尝试为 adhoc 创建分发证书并尝试安装它以运行生产环境的推送,但这些都不起作用。 php web 服务返回一切正常,例如:
2011 年 3 月 3 日星期四 21:03:14 +0100 ApnsPHP[3231]:信息:正在尝试 ssl://gateway.push.apple.com:2195... 2011 年 3 月 3 日星期四 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 [自定义标识符:Message-Badge-3] (1/3):253 字节。 2011 年 3 月 3 日星期四 21:03:19 +0100 ApnsPHP[3231]:信息:已断开连接。
但我没有收到任何推送通知。
我还尝试再次创建证书 n 次 3-4 次,但没有成功。 有人可以在这方面帮助我吗?
编辑:我正在使用这种方法来创建证书: http://code.google.com/p/apns-php/wiki/CertificateCreation 一个证书可用于沙盒和生产开发。
非常感谢, 导航
【问题讨论】:
开发和生产的日志一样吗? 是的。实际上问题出在上面提供的链接上。如果想将相同的证书用于生产和沙箱,则有一个构建证书的说明。但这对我不起作用。我必须为生产版本创建一个新证书,然后它才开始工作。非常感谢你们。 【参考方案1】:我随身携带这份清单。这有助于找到可能的原因。您还可以从设备获取 APNS 日志(如果您有权访问..),看看是否有帮助。
APNS 清单
提供商应安装 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 下载它的位置,或者将其作为电子邮件附件发送并打开设备上邮件中的附件。我们可以使用mdm来推送profile。
更多信息可以在here找到。
【讨论】:
非常有用的信息,我在任何地方的文档中都找不到。谢谢独角兽!【参考方案2】:我遇到了同样的问题,从应用商店安装了一个控制台应用,发现一条消息“没有为应用找到有效的 aps-environment 权利字符串”
我忘记在授权文件中添加推送通知,因此从应用商店下载时它没有注册推送通知。
【讨论】:
【参考方案3】:确保从您的设备上卸载该应用并全新安装 AppStore 版本。
【讨论】:
以上是关于推送通知不适用于应用商店应用程序 - iphone的主要内容,如果未能解决你的问题,请参考以下文章
推送通知不适用于 iPhone 所有设备 (Xcode8) 版本