我已经为此工作了一段时间。我知道那里有很多文章,并且学到了很多。
我以同样的方式创建了我的开发和生产 SSL。开发连接到 ssl://gateway.sandbox.push.apple.com:2195 生产连接到 ssl://gateway.push.apple.com:2195 连接似乎工作正常。
至于应用程序。开发:当我从 xCode 直接在我的设备上运行它时,它运行的是开发版本。该应用程序成功将开发令牌记录在数据库中。然后我运行一个服务来发送推送通知,并且它被正确传递。消息已成功传递。
Ad-hoc:当我构建存档并将其导出以进行 Ad-hoc 分发时,我会仔细检查包内容codesign -dvvvv --entitlements - Elepago.app
并查看 aps-environment 是否正确设置为生产环境。我将其打包并通过 iTunes 将其加载到我的设备上。当应用程序启动时,我看到数据库中记录了新的生产令牌。所以必须正确设置环境。当我将推送通知发送到生产密钥(与开发相同,只是更改 SSL .pem 密钥和服务器)时,它说它已成功交付。但是它从未真正到达设备!
这个问题快把我逼疯了。我刚刚完成并清理了我的分发证书,并使用全新的 CSR 对其进行了重建。我还更新了所有配置文件以使用该新证书。[除了我已经检查过的 aps-environment 之外,这些证书如何与应用程序相关联的任何想法。]
任何见解将不胜感激。