zoukankan      html  css  js  c++  java
  • iPhone的UDID与push中使用的device token的关系

    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串发的现象。

  • 相关阅读:
    每周进度条07
    软件需求模式阅读笔记06
    每周进度条06
    软件需求模式阅读笔记05
    Django之ModelForm组件
    Django的性能优化
    分页,缓存,序列化,信号
    Django补充——中间件、请求的生命周期等
    Git基础介绍和使用
    Django基础之三
  • 原文地址:https://www.cnblogs.com/417460188dy/p/3220888.html
Copyright © 2011-2022 走看看