Apple 在 iOS 中的生产推送通知不起作用

Posted

技术标签:

【中文标题】Apple 在 iOS 中的生产推送通知不起作用【英文标题】:Apple push notification for production in iOS not working 【发布时间】:2017-10-25 19:33:11 【问题描述】:

从问题开始,后端的推送通知证书是由另一个开发人员设置的,并且运行良好。但是,开发人员已经离开,由于我无法访问他的机器,因此我创建了新的分发证书来上传新版本的应用程序,然后停止推送通知以进行传递。我第一次使用推送通知,很困惑问题出在哪里。谁能给我一个清晰的画面以及正在发生的事情以及如何去做?

这是我在它停止工作后所做的。我去了开发者门户,因为它显示推送通知已启用,

    在我的 mac 中生成了代码签名请求或 CSR 文件 下载了 aps.cer 文件 已创建 .p12 和 .pem 文件

在此之后,我将 .p12 和 .pem 文件都提供给了我们的后端人员,但仍然无法在我们的试飞版本中运行。

然后我使用 GitHub 上提供的 Pusher 应用程序进行了测试,它使用生产证书成功地将推送通知传递到了测试飞行版本。

因此,谁能给我一个明确的想法,我可能哪里出错了? 我是否需要撤销我的推送通知 SSL 证书并重新生成?或者可能是什么错误?

【问题讨论】:

对于试飞,您需要提供生产 p12,很可能您的后端人员做错了什么:D。 @mustafa96m 用于后端发布或一般生产需要哪一个?是 .pem 文件还是 .p12 文件或两者兼而有之? 查看这个:link 【参考方案1】:

如果它使用任何在线工具(例如 pusher)工作,那么它也应该可以从代码中正常工作。您的开发人员缺少一些东西,请他正确检查配置。如果是生产证书和生产应用程序,他必须调用生产 APNS url/port。如果是沙盒证书和沙盒应用程序,他必须调用沙盒 APNS url/port。下面的 url/ports 用于 APNS(假设您直接使用 APNS 而不是 firebase)

SANDBOX_GATEWAY_HOST = "gateway.sandbox.push.apple.com"
SANDBOX_GATEWAY_PORT = 2195
SANDBOX_FEEDBACK_HOST = "feedback.sandbox.push.apple.com"
SANDBOX_FEEDBACK_PORT = 2196
PRODUCTION_GATEWAY_HOST = "gateway.push.apple.com"
PRODUCTION_GATEWAY_PORT = 2195
PRODUCTION_FEEDBACK_HOST = "feedback.push.apple.com"
PRODUCTION_FEEDBACK_PORT = 2196

还要确保这些 url 可以从您的服务器访问,尝试使用 curl 命令从服务器发送推送通知,如果问题仍然存在,请调试。如果您使用代理,请记住代理。

【讨论】:

【参考方案2】:

只是在这里回答,以便对其他人有所帮助。一切都相应地设置,但是,问题是服务器中的“沙盒”键设置为“真”以进行生产。一旦我们将其设置为 false,一切都会完美运行。

【讨论】:

以上是关于Apple 在 iOS 中的生产推送通知不起作用的主要内容,如果未能解决你的问题,请参考以下文章

QuickBlox,推送通知不起作用

推送通知在 Apple Beta 测试 (TestFlight) 中不起作用

适用于 iOS 的 Google Firebase 推送通知在生产环境中不起作用

推送通知不起作用 Xcode 11.3.1

IOS 推送通知在 ad hoc 模式下不起作用

使用 cordova-plugin-fcm 插件推送通知在 iOS 生产中不起作用