1,device token到底是什么呢?

结论:

device token是对APNs来说,设备的标识符,与app无关。device token不同于UIDevice的uniqueIdentifier(即UDID),因为出于安全和隐私原因,当设备被擦除后,token发生变化。

 

2,不同的app的device token相同么?

结论:

同一台设备上,不同的app获得的device token是一样的,device token与app无关。

 

3,一个设备会产生多个device token么?

结论:

一个设备可能会产生多个device token。

有以下两种情况:

(1)设备擦除过,token变化。

(2)设备同时装过development和distribution的程序,同一个设备在development和distribution两种情况下,收到的device token是不同的。

4,一个device token可能对应多个UDID么?

结论:

一个device token也可能对应多个UDID。

device token的产生:

device token是每次建立TLS连接时,APNS通过每台正常设备唯一的设备证书(unique device certificate),并用令牌密钥(token key)加密生成的。

每台设备独有的设备证书和密钥的来历:

正常的设备刷系统之后,是没有设备证书和密钥的。这就是为什么设备会需要连接到iTunes上进行激活——激活过程中,Apple会分配给每台设备独一无二的设备证书(device certificate)和密钥(key) 。

iPhone OS3.X 使用blacksn0w进行解锁 的过程,是不经过iTunes的,而blacksn0w本身又不生成对应的设备证书(device certificate)和密钥(key) ,因此这样解锁完的iPhone根本不可能与APNS建立任何的TLS链接,不具备Push功能。当多个iPhone的设备证书(device certificate)完全一致时,就存在一定几率使得多个iPhone获得相同的设备令牌(device token)。当这些相同设备令牌(device token)的iPhone上启用了同一个应用程序的Push的时候,就极有可能出现彼此间的Push串发的现象。

posted on 2013-07-28 11:02  童话DY  阅读(708)  评论(0编辑  收藏  举报