获取不变的UDID-b
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;
个人测试数据
原文链接:http://www.jianshu.com/p/c7adc4e61e7b
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
获取不变的UDID-b的更多相关文章
- 如何获取苹果手机的UDID
获取苹果手机的UDID有很多种,比如Xcode,iTunes等等吧,个人比较推荐使用iTunes,因为比较官方,而且苹果电脑自带的有,而且Windows也可以下载安装. 1.下载安装itunes(点击 ...
- 【转】iOS设备的UDID是什么?苹果为什么拒绝获取iOS设备UDID的应用?如何替代UDID?
本文讲诉的主要是为什么苹果2011年8月发布iOS 5后就开始拒绝App获取设备的UDID以及UDID替补方案,特别提醒开发者苹果App Store禁止访问UDID的应用上架(相关推荐:APP被苹果A ...
- iOS7: 如何获取不变的UDID
如何使用KeyChain保存和获取UDID 本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID的问题.并给出一个获取UDID的工具类,使 ...
- 获取唯一UUID/UDID方案
概述 如何保证获取到的UUID能够唯一标识每一台设备呢?我们知道通过UIDevice可以获取到UUIDString,但是如果App被删除了然后重新安装,就会得到不同的UUIDString,这并不是我们 ...
- Mac下用命令行获取苹果手机的UDID
在终端输入命令行:system_profiler SPUSBDataType | grep "Serial Number:.*" | sed s#".*Serial Nu ...
- 获取设备UDID、IMEI、ICCID、序列号、Mac地址等信息
在iOS7之前, 可以方便的使用 [[UIDevice currentDevice] uniqueIdentifier] 来获取设备的UDID,但是在iOS7之后这个方法不再适用. 你可以用[[UID ...
- iOS获取设备唯一标识的各种方法?IDFA、IDFV、UDID分别是什么含义?
一.UDID (Unique Device Identifier) UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和 ...
- iOS 获取一个不变的UDID
原文:iOS7: 如何获取不变的UDID 如何使用KeyChain保存和获取UDID 本文是iOS7系列文章第一篇文章,主要介绍使用KeyChain保存和获取APP数据,解决iOS7上获取不变UDID ...
- 苹果ios通过描述文件获取udid
苹果ios通过描述文件获取udid 需要准备的东西 1,安装描述文件只支持https的回调地址,所以需要申请https域名 2,描述文件签名,不安装也可,只要能接受红色的字 步骤: 1,准备xml文件 ...
- iOS 获取设备唯一标示符的方法
在开发中会遇到应用需要记录设备标示,即使应用卸载后再安装也可重新识别的情况,在这写一种实现方式--读取设备的UUID(Universally Unique Identifier)并通过KeyChain ...
随机推荐
- eclipse导入安卓工程时出现 Invalid project description. overlaps the location of another project提示
eclipse导入工程时出现了如下问题: Invalid project description. /Users/yang/Documents/workspace/BarCodeTest overla ...
- (浅谈).Net控件GridView绑定数据
前台GridView属性设置 <td> <asp:GridView ID="GridView" runat="server" AutoGene ...
- hdu 2004 成绩转换
成绩转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- Html5中的video元素
最近在做门户的时候遇到要显示企业的视频介绍,需要找到一个在aspx页面播放视频的html,最后找到了是一段HTML5最新的html代码,如下: /// <summary> /// 播放视频 ...
- jquery点击控制动画暂停开始
一下是从w3c上面考下来了的, animation:[[ animation-name ] || [ animation-duration ] || [ animation-timing-functi ...
- 函数function的方法call()以及apply()
1.这两个方法十分重要:可以改变函数的作用域,也就是改变函数中的this 使用call()方法的时候,必须明确传入每一个参数,结果跟apply()是一样的,废话不多说,下面来一个简单的案例,便 ...
- SQL Server的三种物理连接之Loop Join(一)
Sql Server有三种物理连接Loop Join,Merge Join,Hash Join, 当表之间连接的时候会选择其中之一,不同的连接产生的性能不同,理解这三种物理连接对性能调优有很大帮助. ...
- 剑指offer_快速查找递增二维数组中是否存在目标
[编程题]二维数组中的查找 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...
- CSS选择器介绍
一.元素选择器 E{...} 二.属性选择器 E[attr]{...}:指定该CSS对具有attr的元素起作用: E[attr=value]{...}::指定该CSS对具有attr的值为value的元 ...
- Object类型
Object类型 我们看到的大多数引用类型值都是Object类型的实例,虽然Object类型不具备多少功能,但是在储存和传输数据上的确是不错的选择. 2.对象字面量表示法 调用Object构造函数: ...