同一组织内多个应用程序使用单个APNs密钥

24

我的组织维护多个应用程序,关于APNs密钥的使用方式存在困惑。 我们正在使用Firebase发送推送通知。

到目前为止,我们有两个苹果密钥用于两个不同的应用程序。但是无法创建第三个启用了APNs的密钥。 Apple key APNs error

这个问题表明我们应该将同一个密钥用于所有应用程序。

我的问题是:

如果我们只能为一个组织创建两个密钥,是否应该将其中一个用于生产,另一个用于测试/开发?

如果我们将相同的密钥用于多个不相关的应用程序(除了这些应用程序由同一组织创建之外没有关联),那么如何防止云消息被推送到错误的应用程序。这是否与应用程序的标识符有关? 难道我们应该创建一个约定来规避发送消息到错误应用程序的问题吗?(我实际上不认为这是一个非常有效的选择。感觉非常不对。)

例如:

  • 为每个应用程序使用带有前缀的主题?
  • 为每个应用程序创建设备组?

我也在这里提出了这个问题:https://forums.developer.apple.com/message/415911#415911

1个回答

40

这个密钥用于验证服务。它将您的组织身份识别给服务。

你可以拥有两个密钥的原因是,如果密钥被泄露,你可以在废弃旧密钥之前创建一个新的密钥。

当应用程序注册远程通知时,你会收到一个在该设备上该应用程序唯一的标识符。如果在该设备上有多个应用程序,则每个应用程序都会获得不同的标识符。

当你发送推送通知时,标识符确保它被传递到正确的应用程序和设备。

你需要确保将标识符存储在后端与正确的应用程序相关联(或者对于不同的应用程序可能有不同的后端)。


3
谢谢你的回答!关于 FCM 主题,您怎么看:https://firebase.google.com/docs/cloud-messaging/android/topic-messaging? 如果我在两台设备上安装了具有相同密钥的两个不同应用程序。Firebase 和苹果如何区分两个不同的应用程序?是当一个人在 Firebase 上创建了两个应用程序并生成了两个不同的 GoogleService-Info.plist 文件时吗? - Tejpbit
3
如果您使用 FCM,则需要为每个 iOS 应用创建一个不同的 Firebase 应用,正如您所提到的那样,在 GoogleService 文件中反映出来。然后,应用程序推送通知注册将记录在 Firebase 后端的正确应用程序中。 - Paulw11
1
好的,我明白了。只是想确保我们不会在不同的应用程序之间推送随机通知。谢谢你的帮助! - Tejpbit
如果有两个密钥,单个应用程序是否将使用这两个密钥进行签名? - Hayi Nukman
您将会有不同的iOS应用程序,每个应用程序都有不同的Bundle ID,对应于不同的Firebase项目,并且每个应用程序将存储其自己的远程通知标识符。 - Paulw11
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接