【发布时间】:2013-06-10 07:33:11
【问题描述】:
我已经为此工作了一段时间。 我知道那里有很多文章,并且学到了很多。
我以同样的方式创建了我的开发和生产 SSL。 开发连接到 ssl://gateway.sandbox.push.apple.com:2195 生产连接到 ssl://gateway.push.apple.com:2195 连接似乎工作正常。
至于应用程序。 发展: 当我从 xCode 直接在我的设备上运行它时,它运行的是开发版本。该应用程序成功将开发令牌记录在数据库中。然后我运行一个服务来发送推送通知,并且它被正确传递。消息发送成功。
临时:
当我构建存档并将其导出以进行临时分发时,我会仔细检查包内容codesign -dvvvv --entitlements - Elepago.app 并查看 aps 环境是否正确设置为生产环境。我将其打包并通过 iTunes 将其加载到我的设备上。当应用程序启动时,我看到数据库中记录了新的生产令牌。所以必须正确设置环境。当我将推送通知发送到生产密钥(与开发相同,只是更改 SSL .pem 密钥和服务器)时,它说它已成功交付。但是它从未真正到达设备!!!
这个问题快把我逼疯了。我刚刚完成并清理了我的分发证书,并使用全新的 CSR 对其进行了重建。我还更新了所有配置文件以使用该新证书。 [除了我已经检查过的 aps-environment 之外,这些证书如何与应用程序相关联的任何想法。]
任何见解将不胜感激。
【问题讨论】:
-
设置 -> 通知中是否为您的应用启用了通知?
-
感谢您的帮助。它们是(推送通知确实在开发中起作用)。甚至在生产版本上,我每次都得到推送键,所以这些权限似乎都井井有条......
-
@Federico 您确定要向生产设备令牌发送通知吗?
-
是的。我正在手动进行测试。每当我加载应用程序的开发版本(直接来自 xCode)时,设备都会将开发 pn 令牌注册到 db。在这个版本上始终如一。我拿了那个密钥并手动将它放入我的 php 文件中进行测试。并且 pn 已交付。 当我临时运行它时,数据库中的 pn 令牌会发生变化 - 我假设 bc 它是生产令牌。当我替换令牌时,将 php 中的服务器和 SSL 证书更改为生产,我什么也没得到。设备上没有推送通知。没有错误消息。
-
单独的“开发人员”和“生产”设备令牌的存在让我进行了几个小时的测试。哪里提到令牌在每种情况下都不同?
标签: ios push-notification apple-push-notifications