苹果推送通知提供者的设备令牌

4
如果我是多个iOS应用的苹果推送通知“提供者”,我可以为多个应用使用相同的设备令牌吗?我知道每个应用都需要唯一的SSL证书。但是,我对设备令牌感到困惑。
例如:我有两个应用程序A和B。我想为两个应用程序提供推送通知。假设我为两个应用程序拥有唯一的SSL证书,当同一用户安装应用程序B时,我是否可以在为应用程序B提供推送通知时重复使用来自用户安装应用程序A的设备令牌T?
更多信息:重新阅读 Apple的文档后,仍然不清楚。特别是这段话似乎意味着设备令牌可以被重复使用:
“提供者为交付到设备的每个通知都必须携带它从该设备上的应用程序获得的设备令牌。 APNs使用令牌密钥解密令牌,从而确保通知有效。 然后,它使用包含在设备令牌中的设备ID确定通知的目标设备。”
注意:提供者SSL证书中包含的“主题”/bundleID似乎将每个应用程序的通知定向到设备上的特定应用程序。因此,设备令牌对于设备是唯一的(而不是针对设备上的应用程序)。
1个回答

7
对于两个应用程序A和B,对于沙箱SSL证书,设备令牌将保持不变,但在使用分发证书时(即使用生产SSL证书时)会更改。
此外,当您升级操作系统时,设备令牌可能会更改。
我也开发了一个“提供者”,我更喜欢按应用程序存储设备令牌。 即(APP_A => Token1; APP_B => Token1) 每次设备向提供者发送注册请求时,检查表中的APP和设备令牌组合是否存在,如果不存在,则进行新插入。
这样,即使由于某种原因设备令牌发生更改,您也不必担心。

有趣。请提供相关的苹果文档链接。根据我阅读的苹果文档链接,设备令牌在沙盒和生产环境下可以是相同的。 - SundayMonday
1
这里是一个链接...https://dev59.com/9HI-5IYBdhLWcg3wQV-c - makarand84
1
据我所知,作为提供者,您希望重复使用从应用程序A收到的令牌T,以向安装在同一设备上的应用程序B推送通知。 - makarand84
2
你可以这样做,但那不是理想的方式。考虑我是一个用户并安装了应用程序A,当我第一次启动该应用程序时,我将收到提示,询问我是否要允许该应用程序的推送通知。如果我选择“不允许”,则您的服务器将无法接收到令牌。因此,您不应依赖一个应用程序来发送令牌。即使它们在同一设备上,您的每个应用程序都应该向提供程序服务注册自己的令牌。 - makarand84
1
如果用户不允许App A的通知,即使您推送通知,苹果推送通知服务也会拒绝它。此外,我希望您知道,您的提供者服务与苹果服务之间的连接是每个应用程序一次。因此,用户不会错误地收到通知。 - makarand84
显示剩余3条评论

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