iOS 应用程序能否同时使用基于证书和基于令牌的 APNs 连接?

Can an iOS app use both certificate-based and token-based APNs connections at the same time?

我们目前正在为现有应用程序准备更新,该应用程序通过使用基于令牌的 APNs 连接的 Firebase 提供推送通知。

由于后端发生变化,我们希望过渡到基于证书的 OneSignal。

由于应用程序将作为更新发布,我们希望在过渡期间通过 Firebase 维持推送,而更新版本应该能够通过 OneSignal 接收推送。

我的问题是:一个App-ID可以同时使用吗?还是会互相干扰?

Apple's docs 提及

To send notifications, your provider server must establish either token-based or certificate-based trust with APNs using HTTP/2 and TLS.

但不要说同时实施两者。

既然你提到了 "receive pushes via OneSignal" 我假设你在谈论 iOS 应用程序,但我相信这更多是后端问题。因为在 iOS 你所要做的就是

  • 通过项目设置注册推送通知
  • 请求权限(Info.plist)
  • 在 appDelegate func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error)
  • 中处理
  • 为您的项目正确设置开发人员门户(证书、权限等)

所有到达设备的推送通知都来自 APNs,因此您的应用既不关心 Firebase 也不关心 OneSignal

我相信您的应用程序将在其中包含 OneSignal SDK,而不是更新后的 Firebase。

所以我认为您需要在过渡期间通过服务器上的 Firebase 和 OneSignal 处理推送通知的发送。您的服务器需要同时与这两项服务进行通信。 APNs 将为您处理其余的交付。

您始终可以在生产前使用沙盒服务器进行试用。

您实际上可以同时使用它们。

您还可以生成 2 个证书并同时使用它们。

您也可以在多个地方使用单个 certificate/token。

对此没有任何限制 - certificate/token 仅用于识别您是谁,您的 App ID。