iOS唯一标识的历史历程

iOS 6.0

在iOS6.0以前,是使用uniqueIdentifier来获取手机的唯一标识,后来苹果感觉这样会泄露用户隐藏,就封掉了这个方法;

iOS 6.0系统新增了两个用于替换uniqueIdentifier的接口

  • identifierForVendor
  • advertisingIdentifier

但是 identifierForVendor 会在卸载后再重装,就会改变,所以就不能当做手机的唯一标识使用。
后来,未来解决问题,程序员们想到了使用WiFi的mac地址来作为手机的唯一标识。很欢乐的使用着·······

但是············

iOS 7.0

iOS 7中苹果再一次无情的封杀mac地址,使用之前的方法获取到的mac地址全部都变成了02:00:00:00:00:00

聪明的程序员们,想到了用广告标示符作为手机唯一的标识。但是·······
只要用户重置了广告标示符以后,还是会获得一个新的广告标识。这样一来,广告标识付也不可以用了。。。。

这下该如何是好呢?

接下来就是介绍解决方法的时候了

使用KeyChain来保存获取到的唯一标示符呢,这样以后即使APP删了再装回来,也可以从KeyChain中读取回来,当然也不会害怕重置了广告标示符

FCUUID

在github搜一下UDID,发现这个东东的星星最多。看来一下readme,添加到自己的项目中测试,可用

设备标识在 完全抹掉iPhone的时候,仍然会变。学长只能帮到这了····

使用方法

1、点击下载所需文件
因为FCUUID需要依靠该作者的另外一个文件。所以这里有就把所有的文件放在了一起,供大家下载使用。
作者 githun地址 https://github.com/fabiocaccamo/FCUUID

2、在项目中添加 Security.framework

3、导入头文件

 #import "FCUUID.h"

接下来就可以欢快的使用了

FCUUID提供的类方法

// 每次运行应用都会变
+(NSString *)uuid; //changes each time (no persistent), but allows to keep in memory more temporary uuids
+(NSString *)uuidForKey:(id<NSCopying>)key; // 每次运行应用都会变
+(NSString *)uuidForSession; // 重新安装的时候会变
+(NSString *)uuidForInstallation; // 卸载后重装会变
+(NSString *)uuidForVendor; // 抹掉iPhone的时候才会变,适合做唯一标识
+(NSString *)uuidForDevice;

个人测试数据

Paste_Image.png
文/Biharry(简书作者)
原文链接:http://www.jianshu.com/p/c7adc4e61e7b
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

获取不变的UDID-b的更多相关文章

  1. 如何获取苹果手机的UDID

    获取苹果手机的UDID有很多种,比如Xcode,iTunes等等吧,个人比较推荐使用iTunes,因为比较官方,而且苹果电脑自带的有,而且Windows也可以下载安装. 1.下载安装itunes(点击 ...

  2. 【转】iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?

    本文讲诉的主要是为什么苹果2011年8月发布iOS 5后就开始拒绝App获取设备的UDID以及UDID替补方案,特别提醒开发者苹果App Store禁止访问UDID的应用上架(相关推荐:APP被苹果A ...

  3. iOS7: 如何获取不变的UDID

    如何使用KeyChain保存和获取UDID 本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID的问题.并给出一个获取UDID的工具类,使 ...

  4. 获取唯一UUID/UDID方案

    概述 如何保证获取到的UUID能够唯一标识每一台设备呢?我们知道通过UIDevice可以获取到UUIDString,但是如果App被删除了然后重新安装,就会得到不同的UUIDString,这并不是我们 ...

  5. Mac下用命令行获取苹果手机的UDID

    在终端输入命令行:system_profiler SPUSBDataType | grep "Serial Number:.*" | sed s#".*Serial Nu ...

  6. 获取设备UDID、IMEI、ICCID、序列号、Mac地址等信息

    在iOS7之前, 可以方便的使用 [[UIDevice currentDevice] uniqueIdentifier] 来获取设备的UDID,但是在iOS7之后这个方法不再适用. 你可以用[[UID ...

  7. iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?

    一.UDID (Unique Device Identifier) UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和 ...

  8. iOS 获取一个不变的UDID

    原文:iOS7: 如何获取不变的UDID 如何使用KeyChain保存和获取UDID 本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID ...

  9. 苹果ios通过描述文件获取udid

    苹果ios通过描述文件获取udid 需要准备的东西 1,安装描述文件只支持https的回调地址,所以需要申请https域名 2,描述文件签名,不安装也可,只要能接受红色的字 步骤: 1,准备xml文件 ...

  10. iOS 获取设备唯一标示符的方法

    在开发中会遇到应用需要记录设备标示,即使应用卸载后再安装也可重新识别的情况,在这写一种实现方式--读取设备的UUID(Universally Unique Identifier)并通过KeyChain ...

随机推荐

  1. hihocoder 1043 完全背包

    #1043 : 完全背包 时间限制:20000ms 单点时限:1000ms 内存限制:256MB 描述 且说之前的故事里,小Hi和小Ho费劲心思终于拿到了茫茫多的奖券!而现在,终于到了小Ho领取奖励的 ...

  2. MyBatis(3.2.3) - One-to-one mapping using nested ResultMap

    We can get Student along with the Address details using a nested ResultMap as follows: <resultMap ...

  3. xml使用系统整理

    1. 认识xml 可扩展标记语言,一种用于标记电子文档使其具有结果性的标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 2. 和超文本标记语言区别 2.1 ...

  4. mount loop最大数的调整

    mount: could not find any free loop device vi /etc/modules.conf Add "options loop max_loop=64&q ...

  5. 第四十六篇、UICollectionView广告轮播控件

    这是利用人的视觉错觉来实现无限轮播,UICollectionView 有很好的重用机制,这只是部分核心代码,后期还要继续完善和代码重构. #import <UIKit/UIKit.h> # ...

  6. Swift类与结构体

    类和结构体有很多共性: 定义属性存储数据 定义方法执行功能处理 定义下标,通过下标访问他们的值 初始化他们的状态 通过扩展(Extension)扩展其功能 遵守协议(Protocol),协议提供一种特 ...

  7. 引用类型之Function类型

    Function类型 ECMAScript中最有意思的就是函数了,有意思的根源,在于函数实际上是对象.每个函数都是Function的实例,具有属性和方法.而重要的一点是,函数名,不过是指向函数的指针, ...

  8. c语言与c++基础知识

    1.后缀名: C++/C程序的头文件以.h为后缀,C程序的源文件以.c为后缀,C++程序的源文件通常以.cpp为后缀(有些书中介绍有一些系统以.cc或.cxx为后缀的源文件).在Linux系统下的gc ...

  9. myeclipse 的 working set

    想必大家的myeclipse会有很多工程看的和不方便,那么怎么让它看的简洁一点呢,使用working set 会让你的目录看起来没有那么的多. 首先是怎么创建 working set  ,在新建时选择 ...

  10. Java多线程(六) 线程系列总结

    多线程系列终于终结得差不多,本人对该系列所做的总结大致如下: 线程锁模块耗费了大量的时间,底层的AQS实现比较复杂.仍然没有时间总结源码部分,能够坚持写下这么几个篇幅的内容真心佩服自己....希望继续 ...