iOS:IDFV和IDFA

一、 UDID(Unique Device Identifier Description)

代码貌似取不到了,只能通过iTunes获取了,证书添加设备号就是这个
png1

二、IDFA (Identifier For Advertising)

在同一个设备上的所有App都会取到相同的值,是专门给各广告提供商用来追踪用户而设的

   NSString *IDFA =  [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];

但是IDFA并不是唯一不变的,如果用户完全重置系统(设置程序 -> 通用 -> 还原 -> 还原位置与隐私) ,这个广告标示符会重新生成。另外如果用户明确的还原广告(设置程序-> 通用 -> 关于本机 -> 广告 -> 还原广告标示符) ,那么广告标示符也会重新生成。在iOS 10.0以后如果用户打开限制广告跟踪(设置程序-> 通用 -> 关于本机 -> 广告 -> 限制广告跟踪),则获取到的IDFA为一个固定值00000000-0000-0000-0000-000000000000。因此,通过IDFA也无法唯一标识一个设备。

三、IDFV(Identifier For Vendor)

IDFV是给Vendor标识用户用的,每个设备在所属同一个Vendor的应用里,都有相同的值。其中的Vendor是指应用提供商,准确的说,是通过BundleID的反转的前两部分进行匹配,如果相同就是同一个Vendor,例如对于com.abc.app1, com.abc.app2 这两个BundleID来说,就属于同一个Vendor,共享同一个IDFV的值。当然,对于同一个设备不同Vendor的话,获取到的值是不同的。和IDFA不同的是,IDFV的值是一定能取到的。它是iOS 6中新增的,获取方法如下:

NSString *IDFV = [[[UIDevice currentDevice] identifierForVendor] UUIDString];

但是使用IDFV也会存在一些问题。如果用户将属于此Vendor的所有App卸载,则IDFV的值会被重置,即再重装此Vendor的App,IDFV的值也会和之前的不同。

四、UUID(Universally Unique Identifier)

UUID是Universally Unique Identifier的缩写,中文意思是通用唯一识别码。它是苹果提供的一个获取大随机数的方法,据说UUID随机数算法得到的数重复概率为170亿分之一。这样,每个人都可以建立不与其它人冲突的 UUID。

NSUUID在iOS 6.0中才出现,这跟CFUUID几乎完全一样,只不过它是Objective-C接口。通过下面的代码可以获得一个UUID字符串:

NSString *uuid = [[NSUUID UUID] UUIDString];

苹果公司建议使用UUID为应用生成唯一标识字符串。但是获得的UUID值系统没有存储, 而且每次调用得到UUID,系统都会返回一个新的唯一标示符。如果你希望存储这个标示符,那么需要自己将其存储到NSUserDefaults, Keychain, Pasteboard或其它地方。

IDFA、IDFV、UUID都是32位

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值