【问题标题】:Can an iOS app use both certificate-based and token-based APNs connections at the same time?iOS 应用程序可以同时使用基于证书和基于令牌的 APNs 连接吗?
【发布时间】:2018-08-04 14:19:47
【问题描述】:

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

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

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

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

Apple's docs提一下

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

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

【问题讨论】:

    标签: ios apple-push-notifications


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 是的,这应该是正确的答案,我的应用程序同时使用了证书和令牌
    【解决方案2】:

    既然您提到“通过 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 将为您处理其余的交付。

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

    【讨论】:

      猜你喜欢
      • 2020-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-24
      • 1970-01-01
      • 2023-03-25
      相关资源
      最近更新 更多