ios - 单个 APN 键在一个组织中的多个应用程序上
问题描述
我的组织维护多个应用程序,并且对于应该如何使用 APNs 密钥存在混淆。我们正在使用 firebase 发送推送通知。
到目前为止,我们有两个用于两个不同应用程序的苹果键。但无法在激活 APN 的情况下创建第三个密钥。
这个问题表明我们应该对所有应用程序使用相同的密钥。
我的问题是:
如果我们只能为一个组织创建两个密钥,那么一个应该用于生产,一个用于测试/开发?
如果我们对多个不相关的应用程序使用相同的密钥(除了这些应用程序都是由同一个组织创建的之外不相关),什么会阻止云消息被推送到错误的应用程序。它与应用程序的标识符有关吗?我们是否应该创建一个约定来规避向错误的应用程序发送消息的问题?(我实际上并不认为这是一个非常有效的选择。感觉非常错误。)
例如:
- 为每个应用使用带有前缀的主题?
- 创建设备组,每个应用一个?
我也在这里问过这个问题:https ://forums.developer.apple.com/message/415911#415911
解决方案
密钥用于对服务进行身份验证。它向服务标识您的组织。
您可以拥有两个密钥的原因是,如果密钥被泄露,您可以在撤销旧密钥之前创建一个新密钥。
当应用程序注册远程通知时,您会收到该设备上该应用程序的唯一标识符。如果您在该设备上有多个应用程序,每个应用程序都会获得不同的标识符。
当您发送推送通知时,标识符可确保它到达正确设备上的正确应用程序。
您需要确保将标识符存储在后端的正确应用程序上(或者您可能对不同的应用程序有不同的后端)。
推荐阅读
- php - 序列号在我的分页中的每一页中从 1 开始
- arrays - 将一个数组分成 k 段以最大化按位和
- amazon-web-services - 如何将 AWS Elasticsearch 迁移到 Azure Elasticsearch?
- python - 在 DataFrame 的开头而不是结尾处附加一个子字符串
- python - 使用 tile 从二维数组构造 3 维数组
- arrays - 如何在 VHDL 中初始化记录数组?
- mysql - 查询中的错误 (1064): 'INTERSECT(SELECTfriend_id FROM user_friend_list WHERE user_id = '20' and frien' 在第 3 行附近的语法错误
- reactjs - React:TSLint - 禁止 mac 'smart quote' 字符?
- excel - Powerpoint:链接 Excel 图表并更新它们或删除旧图表并插入更新的图表?
- java - How to check whether my android app is successfully installable or not?