iOS应用程序可以同时使用基于证书的APN和基于令牌的APN连接吗?

时间:2018-08-04 14:19:48

标签: ios apple-push-notifications

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

由于后端的更改,我们希望过渡到基于证书的OneSignal。

由于该应用将作为更新发布,因此我们希望在过渡期内通过Firebase维护推送,而更新的版本应该能够通过OneSignal接收推送。

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

Apple's docs提到

  

要发送通知,您的提供商服务器必须使用HTTP / 2和TLS与APN建立基于令牌的信任或基于证书的信任。

但不要说有关同时实现两者。

2 个答案:

答案 0 :(得分:1)

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

您还可以生成2个证书,也可以并行使用它们。

您还可以在许多地方使用单个证书/令牌。

对此没有任何限制-证书/令牌仅用于标识您的身份,您的应用ID。

答案 1 :(得分:0)

由于您已经提到“通过OneSignal接收推送”,所以我假设您正在谈论iOS应用,但是我认为这更多是后端问题。因为在iOS上,您要做的就是

  • 通过项目设置注册推送通知
  • 询问权限(Info.plist)
  • appDelegate func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data)func application(_ application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: Error)中的句柄
  • 正确设置项目的开发者门户(证书,权限等)

所有发送到设备的推送通知均来自APN,因此您的应用无需关心FirebaseOneSignal

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

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

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