Iphone 推送通知令牌是否在单个设备的所有应用程序中都是唯一的?

Iphone 推送通知令牌是否在单个设备的所有应用程序中都是唯一的?,iphone,push-notification,apple-push-notifications,Iphone,Push Notification,Apple Push Notifications,我将在app store上有多个应用程序和一个urban airship帐户,用于向所有这些设备发送推送通知。我想知道的是,是否每个苹果设备在所有应用程序中都有相同的“推送令牌”?这更像是一种数据库体系结构,因此,如果一台设备使用我的许多应用程序,我不会多次复制推送令牌 如果每个Apple设备为其安装的每个应用程序生成唯一的推送令牌,则我的体系结构需要更改。设备令牌并非每个设备都是唯一的;它们在每个操作系统安装中都是唯一的。因此,如果用户购买了一个新设备,但没有从备份中恢复,那么他们将获得一个新

我将在app store上有多个应用程序和一个urban airship帐户,用于向所有这些设备发送推送通知。我想知道的是,是否每个苹果设备在所有应用程序中都有相同的“推送令牌”?这更像是一种数据库体系结构,因此,如果一台设备使用我的许多应用程序,我不会多次复制推送令牌


如果每个Apple设备为其安装的每个应用程序生成唯一的推送令牌,则我的体系结构需要更改。

设备令牌并非每个设备都是唯一的;它们在每个操作系统安装中都是唯一的。因此,如果用户购买了一个新设备,但没有从备份中恢复,那么他们将获得一个新的设备令牌。如果设备被擦除,它将获得一个新的设备令牌,因此新用户不会获得旧用户的消息

此外,对于使用沙箱的开发应用程序和使用生产系统的分发应用程序,还返回了不同的令牌

由于一个用户可能合法地将你的应用程序安装在多个设备上(例如iPhone和iPad),为了安全起见,在用户和设备令牌之间建立多对多关系会安全得多

既然你提到了城市飞艇,你可能会发现我们的别名功能对这类事情很有帮助;您可以在我们的终端为不同的令牌分配一个非唯一的别名,然后我们将跟踪您的用户与其设备令牌之间的映射。请参阅的注册和推送部分


编辑:更新,因为我在这个旧答案上看到了更多的投票。从iOS 7开始,设备令牌对于每个应用程序都是唯一的,即使在同一设备上也是如此

根据苹果公司最新文件:

永远不要在应用程序中缓存设备令牌;相反,当你需要它们时,从系统中获取它们。当某些事件发生时,APNs会向您的应用程序发出新的设备令牌。设备令牌保证是不同的,例如,当用户从备份还原设备时,当用户在新设备上安装应用程序时,以及当用户重新安装操作系统时。获取令牌而不是依赖缓存,可以确保您拥有提供商与APN通信所需的当前设备令牌。当您尝试获取设备令牌但未更改时,fetch方法将快速返回。


现在,我没有做“用户帐户”这样一个用户将“登录”多个设备。我的系统设置为,每个唯一的设备ID都被视为一个原子实体(在启动任何应用程序时创建或触摸)-我需要使用软用户帐户的任何“多对多”都可以稍后实现。---非常好的回应,我得到了我需要的一切。城市飞艇是一项很好的服务,很高兴和你们做生意。这些旧设备的代币会出现在苹果的反馈服务中吗?如果您尝试向这些现在无效的令牌发送通知,会发生什么情况?不,它们不会出现在反馈服务中。如果你按他们,他们什么也不做。如果将iOS从
10.3.0
升级到
10.3.1
,设备令牌是否过期?