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

  • 相关阅读:
    泛型
    Math类
    Static关键字
    Java最新面试问答整理
    Jenkins显示语言切换为中文(最终解决办法)
    eclipse中导入SVN项目步骤
    Xshell连接不上虚拟机Linux系统
    SQLYog执行SQL脚本提示:错误代码: 1067
    Web应用三种部署方式的优缺点
    web应用配置虚拟路径映射方式一配置不成功问题解决办法
  • 原文地址:https://www.cnblogs.com/417460188dy/p/3220888.html
Copyright © 2011-2022 走看看