嗨,所以我现在很困惑,不知道接下来该做什么。我花了最近两周的时间让这些推送通知正常工作,当我终于把它整齐整洁时,我把它放到一个adhoc发行包中并将服务器配置切换到生产环境,突然间什么都没有用,我没有任何错误信息。它应该工作,它应该工作,它不工作。所以我需要一些帮助因为我迷路了。
可能存在的问题 -
HOST CONFIG
真正帮助我开始工作的是本教程here,托管服务器是Heroku,应用程序是使用this gem在Sinatra中编写的,如果没有在某种程度上到生产环境我没有看到请告诉我。要将环境更新为生产环境,我只更改了使用了哪个密钥,将host.sandbox.push.apple.com中的主机更改为gateway.push.apple.com,如下所示:
APNS KEYS
我不认为是这样,但我不明白发生了什么,所以我记录了它,但我相信分发键的作用 - 运行
openssl s_client -connect gateway.push.apple.com:2195 -cert dis_apskey.pem
终端中的与推送服务器进行了这种连接和交易:
我认为这意味着它有效但我不确定(请参阅编辑回答,这并不意味着它有效)。密钥是使用以下命令创建的:
openssl pkcs12 -in aps_distribution.p12 -out dis_apskey.pem -nodes
从iOS开发门户网站下载的APS开发和发行证书的私钥或现在称为的任何私钥,导出为.p12加密文件:
虽然,虽然从不同的私钥中他们确实变得异常相似(所有字符都相同) -
这是正常的吗?因为我从同一个CSR制作了两个推送服务证书,我不知道我完全迷失了......只是把它扔到那里,因为这些都不再有意义。
代码签名
我相信这是正确的(来自我的xcode项目):
那些对应于我的iOS Developer Portal中的证书和移动配置文件,我已经重新生成了许多新的,用xcode刷新它们,双重检查并重新加载到这个东西,我觉得很难相信这个是问题的领域。但只是为了确保我发布它,这些是当前的配置文件,是在APS证书颁发后制作的。同样,这对我来说并没有多大意义,是的,我已经阅读了文档,而且它仍然是希腊语。
移动设备令牌
再次,我不认为是问题。我的应用程序使用开发配置文件生成了一个令牌,沙盒能够将通知推送到它,并且它的工作非常好!然后,当我切换到adhoc配置文件并使用生产环境构建BUT时,我的应用程序生成了一个新令牌。我再说一遍,一切都在沙盒上正常工作但现在没有。
还有其他原因吗?
这就是我所能想到的,如果有人有别的东西请告诉我。我只是希望这个工作,如果苹果将它们发送回失败的推送,我无法看到错误,所以我不知道。它在开发人员沙箱中工作,现在应该正在工作,这是我能想到的。
感谢。
答案 0 :(得分:6)
因此经过长达两天的挫败感买了一个问题。什么有效。 Reading
我需要导出两个项目
然后是.pem转换。
成功!!
编辑:我还应该注意到问题中与gateway.push.apple.com的ssl连接的图片不是正确的连接,使用这里的新.pem键,答案是套接字没有关闭“马上。你应该能够在它关闭之前输入一些东西。