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

转载于:https://www.cnblogs.com/417460188dy/p/3220888.html

iPhone的UDID与push中使用的device token的关系相关推荐

  1. 解决git push 中remote: Permission to xxxxx.git denied to xxx. fatal: unable to acce

    解决git push 中remote: Permission to xxxxx.git denied to xxx. fatal: unable to acce 解决方案一 解决方案二 解决方案一 第 ...

  2. 如何从iPhone的音乐应用程序中删除Apple Music

    Apple Music is heavily integrated into your iPhone's Music app. This is great if you're a subscriber ...

  3. git提交后push中出现之前的提交的代码或者其他人提交的代码

    git提交后push中出现之前的提交的代码或者其他人提交的代码 问题现象 1.项目最外层目录的pom.xml文件,右键输入git reset --mixed HEAD~7指令,撤销commit的全部内 ...

  4. iphone计算机显示算式,在 iPhone 上的 Numbers 表格中计算值

    在 iPhone 上的 Numbers 表格中计算值 您可以创建将使用选择的任何单元格中的数据自动执行计算的公式或函数单元格.例如,您可以比较两个单元格中的值,计算单元格的和或积,等等.公式或函数的结 ...

  5. vue中axios如何实现token验证

    title: vue中axios如何实现token验证 date: 2018-02-08 17:50:07 tags: [axios,vue] 继上篇实现Auth认证之后,然后每个跳转页面都会在后端验 ...

  6. Python中怎样改变集合之间的关系?

    Python中怎样改变集合之间的关系?数学中,两个集合关系的常见操作包括:交集.并集.差集.补集.设A,B是两个集合,集合关系的操作介绍如下: 交集是指属于集合A且属于集合B的元素所组成的集合, 并集 ...

  7. 在Android Studio中打开Android Device Monitor时报错的解决方法

    在Android Studio中打开Android Device Monitor时报错的解决方法 参考文章: (1)在Android Studio中打开Android Device Monitor时报 ...

  8. 一文理清Mybatis中resultType与resultMap之间的关系和使用场景

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 1.概述 Mybatis ORM半自动映射框架对java开发工程师来说应该是必会的框架之一. ...

  9. html5中的dom中的各种节点的层次关系是怎样的

    html5中的dom中的各种节点的层次关系是怎样的 一.总结 一句话总结:Node节点是所有节点的基类,所以都继承它的方法 1.dom提供在js中动态修改html标签的作用 比如增加修改标签等,并且是 ...

最新文章

  1. Android报错:java.lang.NoClassDefFoundError: Failed resolution of: Ljava/util/Base64;如何解决
  2. JAVA不可变List的实现
  3. 【C 语言】二级指针作为输入 ( 指针数组 | 复杂指针解读 )
  4. Oracle中查询、禁用、启用、删除表外键
  5. MyEclipse软件中快捷键
  6. 使用yolov5训练自己的目标检测数据集
  7. recovery mode
  8. 浏览器沙箱(sandBox)到底是什么?
  9. iOS开发之千呼万唤始出来iOS10更新内容以及iOS 10的闪退问题解决
  10. 微信小程序云开发-树洞小程序Treehole(畅所欲言/交易广场实现)
  11. 运放的参数详解及应用电路
  12. 12月31日起涉线上支付的微信小程序需设置订单中心页
  13. 智合同丨AI智能审核工具
  14. 飞机游戏中子弹与飞机的移动与边界源码
  15. Unity制作简单拦截近防炮——如何预测打击目标
  16. html中文本旋转90度,css如何使文字方向转90度
  17. HashMap的put方法原理
  18. 简单网页设计静态成品分享
  19. 为什么Mysql底层采用B+树做索引?
  20. shell脚本中export命令未生效,原因详解

热门文章

  1. 【计算机类】大学生计算机专业电子书汇总
  2. 【Linux】一步一步学Linux——VMware虚拟机三种网络模式详解(07)
  3. xboxone硬盘坏的表现_【32期】硬盘损坏的根源居然是——它!
  4. 鸿蒙怎么运行安卓应用,华为:安卓生态应用可在部分鸿蒙设备上运行
  5. matlab多变量优化,matlab - Matlab使用fminsearch优化多变量 - 堆栈内存溢出
  6. keepalived(8)——http、tcp检测
  7. 16位汇编 数据段 栈段 代码段
  8. Kali-linux安装之后的简单设置
  9. HDU 4685 Prince and Princess(二分匹配加点建图+强连通分量)
  10. CMake基础 第3节 静态库