从沙箱切换后,推送通知在生产环境中不起作用

时间:2014-01-26 01:08:48

标签: ios heroku apple-push-notifications code-signing production-environment

嗨,所以我现在很困惑,不知道接下来该做什么。我花了最近两周的时间让这些推送通知正常工作,当我终于把它整齐整洁时,我把它放到一个adhoc发行包中并将服务器配置切换到生产环境,突然间什么都没有用,我没有任何错误信息。它应该工作,它应该工作,它不工作。所以我需要一些帮助因为我迷路了。

可能存在的问题 -

HOST CONFIG

真正帮助我开始工作的是本教程here,托管服务器是Heroku,应用程序是使用this gem在Sinatra中编写的,如果没有在某种程度上到生产环境我没有看到请告诉我。要将环境更新为生产环境,我只更改了使用了哪个密钥,将host.sandbox.push.apple.com中的主机更改为gateway.push.apple.com,如下所示:

server_config.jpg

APNS KEYS

我不认为是这样,但我不明白发生了什么,所以我记录了它,但我相信分发键的作用 - 运行

openssl s_client -connect gateway.push.apple.com:2195 -cert dis_apskey.pem 
终端中的

与推送服务器进行了这种连接和交易:

openssl_connecting.jpg

我认为这意味着它有效但我不确定(请参阅编辑回答,这并不意味着它有效)。密钥是使用以下命令创建的:

openssl pkcs12 -in aps_distribution.p12 -out dis_apskey.pem -nodes

从iOS开发门户网站下载的APS开发和发行证书的私钥或现在称为的任何私钥,导出为.p12加密文件:

keychain.jpg

虽然,虽然从不同的私钥中他们确实变得异常相似(所有字符都相同) -

enter image description here

这是正常的吗?因为我从同一个CSR制作了两个推送服务证书,我不知道我完全迷失了......只是把它扔到那里,因为这些都不再有意义。

代码签名

我相信这是正确的(来自我的xcode项目):

enter image description here

那些对应于我的iOS Developer Portal中的证书和移动配置文件,我已经重新生成了许多新的,用xcode刷新它们,双重检查并重新加载到这个东西,我觉得很难相信这个是问题的领域。但只是为了确保我发布它,这些是当前的配置文件,是在APS证书颁发后制作的。同样,这对我来说并没有多大意义,是的,我已经阅读了文档,而且它仍然是希腊语。

移动设备令牌

再次,我不认为是问题。我的应用程序使用开发配置文件生成了一个令牌,沙盒能够将通知推送到它,并且它的工作非常好!然后,当我切换到adhoc配置文件并使用生产环境构建BUT时,我的应用程序生成了一个新令牌。我再说一遍,一切都在沙盒上正常工作但现在没有。

还有其他原因吗?

这就是我所能想到的,如果有人有别的东西请告诉我。我只是希望这个工作,如果苹果将它们发送回失败的推送,我无法看到错误,所以我不知道。它在开发人员沙箱中工作,现在应该正在工作,这是我能想到的。

感谢。

1 个答案:

答案 0 :(得分:6)

因此经过长达两天的挫败感买了一个问题。什么有效。 Reading

enter image description here

我需要导出两个项目

enter image description here

然后是.pem转换。

成功!!

编辑:我还应该注意到问题中与gateway.push.apple.com的ssl连接的图片不是正确的连接,使用这里的新.pem键,答案是套接字没有关闭“马上。你应该能够在它关闭之前输入一些东西。