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

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

您好,我现在很迷茫,不知道下一步该怎么做。我花了过去两周的时间让这些推送通知正常工作,当我终于把它全部整理好时,我将它放入一个临时分发包并将服务器配置切换到生产环境,突然没有任何效果,我没有错误消息可以关闭。它应该工作,它应该工作,但它没有。所以我需要一些帮助,因为我迷路了。

可能的问题-

主机配置

首先真正帮助我让它工作的是本教程 here ,托管服务器是 Heroku,应用程序是使用 this 在 Sinatra 中编写的gem,如果我没有看到它不能以某种方式延续到生产环境,请告诉我。为了将环境更新为生产环境,我只是将使用的 key 和主机从 gateway.sandbox.push.apple.com 更改为 gateway.push.apple.com,如下所示:

server_config.jpg

APNS key

我不认为是这样,但我不明白发生了什么,所以我记录了它,但我相信分发 key 有效 - 正在运行

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

在终端中与推送服务器建立连接和交易:

openssl_connecting.jpg

我认为这意味着它有效,但我不确定(请参阅答案中的编辑,这并不意味着它有效)。 key 是用这个命令制作的:

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

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

keychain.jpg

不过,尽管从不同的私钥来看,它们确实出奇地相似(所有字符都相同)-

enter image description here

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

代码签名

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

enter image description here

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

移动设备 token

再次强调,我认为这不是问题所在。我的应用程序使用开发配置文件生成了一个 token ,沙箱能够向它推送通知并且它运行得非常好!然后,当我切换到临时配置文件并在生产环境中构建 BUT 时,我的应用程序生成了一个新 token ,没有任何东西可以通过它。我再说一遍,在沙盒上一切正常,但现在不行了。

还有其他原因吗?

我能想到的就这些了,如果大家有其他的请告诉我。我只是想让它工作,如果苹果将它们发送回失败的推送,我看不到错误,所以我不知道。它在开发人员沙箱中工作,现在应该可以工作,这就是我能想到的。

谢谢。

最佳答案

所以在经历了两天的挫败感之后。什么起作用了。 Reading

enter image description here

我需要导出这两个项目

enter image description here

然后是 .pem 转换。

成功!!

编辑:我还应该注意问题中与 gateway.push.apple.com 的 ssl 连接图片不是正确的连接,这里使用新的 .pem key 由答案生成,套接字不会“关闭” “立即地。您应该可以在它关闭之前在那里输入内容。

关于ios - 从沙箱切换后,推送通知在生产环境中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21358372/

相关文章:

ios - 如果用户在ios中从服务器删除/清除通知,如何处理角标(Badge)计数?

ruby-on-rails - 我在哪里/如何在后端存储 iOS 设备 token ?

ios - 在不使用 XIB CELL 的情况下使用 swift 4.0 中的段在一个 View Controller 中获取两个 TableView

ios - 如何在单元格获得自定义高度时自定义 UITableView 分隔符

ruby-on-rails - Ruby 2.0/Rails 4.0.0beta 升级在推送到 heroku 时失败

heroku - 为什么 Stripe 事件没有触发并且 webhook 没有接收到?

ios - Skype 如何在 iOS 上实现来电长推送通知?

javascript - 根据 UIWebView 中的位置使用 javascript 以编程方式获取元素,然后单击它们

ios - 我如何知道我的 iOS 应用程序的蜂窝访问是否被禁用?

python - Django Celery 周期性任务运行但 RabbitMQ 队列未被消耗