我已经在做这个项目有一段时间了。 我知道有很多文章,也学到了很多关于这方面的知识。
我以相同的方式创建了我的开发和生产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吗?]
任何见解都将不胜感激。