获取不变的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 ...
随机推荐
- java下实现调用oracle的存储过程和函数
在Oracle下创建一个test的账户,然后 1.创建表:STOCK_PRICES --创建表格 CREATE TABLE STOCK_PRICES( RIC VARCHAR() PRIMARY KE ...
- poj 2524 Ubiquitous Religions(宗教信仰)
Ubiquitous Religions Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 30666 Accepted: ...
- linux 查看端口是否被占用
查看端口是否被占用: netstat -anp | grep port lsof -i:port 查看端口被那个进程占用: netstat -anp | grep port 或使用 lsof -i:p ...
- Java - 正则表达式常用操作
验证 简单验证 String regex = "\\d{4}-\\d{2}-\\d{2}"; String input = "2016-01-01"; asse ...
- android手机操作SD的使用方法
写入SD卡 package com.example.openfileproject; import java.io.File; import java.io.FileInputStream; impo ...
- Sqlserver中关于锁
大多数数据库需要同时处理多个查询,这些查询并不会像车等待红绿灯排队等待,而是会寻找最短的路径执行,因此需要一个红绿灯进行约束,这个红绿灯就是锁 理论上所有的事务之间应该是完全隔离的,但是事实上隔离的成 ...
- setTimeout用法
function faceSave() { if(confirm("确定保存?")) ...
- JAVA中RSS解析器(rome.jar和jdom.jar)范例
1.需要 jdom.jar 和 rome.jar 这两个包.2.创建一个项目,web.xml的内容如下: 代码如下 复制代码 <?xml version="1.0" enco ...
- Cocos开发中Visual Studio下libcurl库开发环境设置
我们介绍一下win32中Visual Studio下libcurl库开发环境设置.Cocos2d-x引擎其实已经带有为Win32下访问libcurl库,Cocos2d-x 3.x中libcurl库文件 ...
- sublime text3 针对于前端开发必备的插件
1.emmet--前身Zen coding:HTML/CSS代码快速编写神器 2.jQuery Package for sublime Text:如果你离不开jQuery的话,这个必备-- 3.JS ...