我可以使用 APNS Dev iOS 证书向其他设备发送推送通知吗?

Posted

技术标签:

【中文标题】我可以使用 APNS Dev iOS 证书向其他设备发送推送通知吗?【英文标题】:Can I send Push Notifications to Other Devices with APNS Dev iOS certificate? 【发布时间】:2016-04-12 15:20:47 【问题描述】:

我的新应用程序有一个开发 APNs ios 证书,并且我使用设备令牌从我的服务器成功发送推送通知并在自己的 iPhone 上接收它们。我在这个应用程序开发中有一个合作伙伴,我创建了一个应用程序的.ipa 文件并将其交给他进行测试。这称为临时开发。到目前为止,它对我们有用。

从我的服务器看来,我成功地将推送通知发送到他的设备以及我的设备,当然使用 HIS 设备令牌(但使用相同的开发 APNs 证书),但他从未收到通知。我仍然继续收到我的通知。我还在我的开发中心注册了他的设备。他没有开发者帐户。

所以在阅读了一些内容之后,我想也许有了这个 APNs 开发证书,就不可能向第三方设备发送通知,比如在这种情况下我的合作伙伴的设备。我在想也许我需要创建一个 DISTRIBUTION 证书。这是真的?还是只使用 APNs 开发证书的通知应该适用于许多设备?

谢谢

【问题讨论】:

如果你使用archive来打包adhoc构建,它是一个发布构建,你需要发送带有分发证书的APNs并发送到分发APNs服务器。如果您将这些东西设置为团队或通过导出/导入开发者帐户,他还可以在他的设备上构建和安装开发应用程序,您可以使用开发证书发送。 我的工作流程通常是先存档项目,然后从管理器窗口中单击导出按钮。这会生成我发送给合作伙伴的文件。 好的,您发送了一个确实是分发版本的存档 ipa,请使用分发证书设置您的 APNs 服务器部分并发送到 feedback.push.apple.com(而不是 feedback.sandbox.push。 apple.com 与开发证书)。 【参考方案1】:

推送通过两种环境进行 - 开发和生产,它们不可互换 - 即,如果您将推送发送到用于发布构建应用程序的 Apple 开发服务器,它将不起作用,反之亦然。 通过 Xcode 安装和运行的应用程序是调试版本,您需要通过开发服务器发送推送,为分发而构建的应用程序是产品版本,因此推送需要转到产品服务器。

您可能知道两台服务器的 url 不同。

毋庸置疑,服务器需要使用 prod 和 dev 推送证书进行签名,以便服务器能够在两种环境中发送推送。

顺便说一句,这两个环境在交付速度等方面的表现并不相同。但这只有在静默推送中才真正引人注目,奇怪的是,开发环境比生产环境更好。

【讨论】:

新的 Apple Push Services 证书包含沙盒和 prod 环境,不再需要创建两个不同的证书。 是的,我一直在阅读文档,我知道沙盒 URL 而不是分发。谢谢!我只是想知道,因为对我来说我们正在做的似乎仍然是开发,而不是分发,因为只有 2 个人在工作,有没有办法让我的合作伙伴将测试应用程序作为开发版本,其中开发推送通知会起作用吗? 如果您在此处查看第 2 步,则会显示“保存以供开发部署”选项。你可以试试看它是否有效developer.apple.com/library/ios/documentation/IDEs/Conceptual/… 是的,我可以确认这是可行的,如果您选择导出用于开发而不是 ad-hoc,您可以使用沙盒通知服务器而不是分发服务器。很酷。

以上是关于我可以使用 APNS Dev iOS 证书向其他设备发送推送通知吗?的主要内容,如果未能解决你的问题,请参考以下文章

向 iOS App 发送通知时出现 APNS 证书问题

Firebase 消息:由于所需的 APNs SSL 证书已过期或未上传,无法向 iOS 设备发送消息

我们可以从 iOS 设备向 APNs 发送推送通知吗?

iOS:从 AWS SNS 向 APNS 发送推送通知

如何使用 c# 在 ios 上发送通知

这个 php 脚本是不是仍可用于使用 APNs 发送测试推送通知? [基于证书的连接]