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

Jer*_*emy 2 code-signing heroku production-environment apple-push-notifications ios

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

可能的问题 -

主机配置

真正帮我把它摆在首位的工作是本教程这里,托管服务器的Heroku和应用程序是用写在西纳特拉这种宝石,如果不结转到生产环境中好歹我没有看到,请告诉我.要将环境更新为生产环境,我只更改了使用的密钥和来自gateway.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 
Run Code Online (Sandbox Code Playgroud)

在终端中获得了与推送服务器的这种连接和事务:

openssl_connecting.jpg

我相信它意味着它有效但我不确定(参见编辑答案,这并不意味着它有效).密钥是使用以下命令创建的:

openssl pkcs12 -in aps_distribution.p12 -out dis_apskey.pem -nodes
Run Code Online (Sandbox Code Playgroud)

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

keychain.jpg

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

在此输入图像描述

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

代码签名

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

在此输入图像描述

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

移动设备令牌

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

还有其他原因吗?

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

谢谢.

Jer*_*emy 6

经过两天长时间的问题买了挫折.什么有效.

在此输入图像描述

我需要导出这两个项目

在此输入图像描述

然后是.pem转换.

并成功!!

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