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

嗨,所以我现在很困惑,不知道下一步该怎么做。 我已经花了两周的时间让这些推送通知正常工作,当我最终把它们整齐整齐的时候,我把它放到一个adhoc分发包中,并把服务器configuration切换到生产环境,突然没有任何工作,我没有错误信息要脱落。 它应该工作,它应该工作,而不是。 所以我需要一些帮助,因为我迷路了。

可能的问题 –

主机configuration

真正帮助我得到它的工作原来是这里的教程,托pipe服务器是Heroku和应用程序是使用这个gem在Sinatra写的,如果这不会传递到生产环境在某种程度上,我没有看到请告诉我。 为了将环境更新到生产环境,我只是将gateway.sandbox.push.apple.com中使用的密钥和主机更改为gateway.push.apple.com,如下所示:

server_config.jpg

APNS键

我不认为这是事实,但我不明白发生了什么,所以我logging了它,但我相信分配键的作品 – 运行

openssl s_client -connect gateway.push.apple.com:2195 -cert dis_apskey.pem 

在terminal得到了与推送服务器的连接和交易:

openssl_connecting.jpg

我相信这意味着它的工作,虽然我不知道肯定(见编辑答案,这并不意味着它的工作)。 钥匙是用这个命令做的:

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

从iOS开发门户下载的APS开发和分发证书的私钥或现在调用的任何其他证书,导出为.p12encryption文件:

keychain.jpg

虽然,从不同的私人钥匙,他们却变得很奇怪(所有的字符都是一样的) –

在这里输入图像说明

这是正常的吗? 因为我做了两个推送服务证书来自同一个CSR,所以我不知道我完全失败了,只是把它扔在那里,因为没有任何意义了。

代码签名

我相信这是正确的(从我的Xcode项目):

在这里输入图像说明

这些对应于我的iOS开发人员门户中的证书和移动设置configuration文件,我已经重新生成了许多新的,在xcode中刷新它们,再次检查并重新加载到这个东西,我很难相信这是该地区的问题。 但是为了确保我发布,这些是当前的configuration文件,在APS证书发布后制作。 再一次,这对我来说并没有什么意义,是的,我已经阅读了文档,而且还是希腊文。

移动设备令牌

这又一次,我不认为是问题。 我的应用程序使用开发configuration文件生成了一个令牌,沙盒能够将通知推送给它,并且它工作得很好! 然后我的应用程序生成一个新的令牌,当我切换到adhocconfiguration文件,并build立,但与生产环境没有什么可以通过它。 我会再说一遍,沙盒上的所有东西都能正常工作,但现在不行。

任何其他原因?

这就是我所能想到的,如果任何人有别的东西,请让我知道。 我只是想这个工作,我不能看到错误,如果苹果发回他们失败的推,所以我不知道。 这是在开发人员沙箱中工作,现在应该工作,这就是我所能想到的。

谢谢。

所以经过了两天的沮丧买了一个长长的问题。 什么工作。 读

在这里输入图像说明

我需要导出这两个项目

在这里输入图像说明

之后是.pem转换。

并成功!

编辑:我也应该注意到,SSLL连接到gateway.push.apple.com图片的问题是不正确的连接,使用新的.pem键在这里产生的答案套接字不立即“closures”。 在closures之前,你应该能够input一些东西。