您的位置:首页 > 其它

苹果移动设备唯一标识的变化

2014-02-18 19:01 169 查看


苹果移动设备唯一标识的变化

发表回复

苹果设备 iphone,ipad,itouch

这些移动设备都可以叫手持移动设备,作为一个app开发者,或者是一个app广告推广者,都想知道我的app,我推广的advisement有多少设备安装和使用了。

这就引出了想要知道这个设备的唯一标识,app是安装在设备上的,所以准确定位设备变成的很重要的需求。

因为没开发过 ios4之前的app,所以这里讨论的年代最早从ios4开始。

先介绍唯一标识界的老大哥。


网卡MAC地址

0A-FC-A0-00-FD-8A


这种12位英数字标识代表了一块网卡的物理地址,在网络通讯层它有现实的意义,保证每个发包能准确的发送到对应的网卡上。

对于安装了网卡的设备来说也唯一标识了这个设备,它是最容易被想到来做唯一标识的数据。当然在android山寨手机上同一批次的手机用了同一个mac地址的也大大存在,但是针对ios系统来说 MAC 无疑是牢靠的,谁叫只有苹果一家出苹果呢。:) — 阉割版 就是没有wifi模块的3gs 没wifi 网卡,取不到MAC很正常

很可惜在ios 7中 ,它将会获取不到,或者获取错误的为 02-00-00-00-00-00, 具体的可以参看 ios7的更新说明。

ios4 ~ ios6


设备唯一标识

[[UIDevice currentDevice] uniqueIdentifier]


很熟悉的使用方式,也是最准确的,这个参数返回32位的英数字作为设备的唯一标识,不管你的设备是重装系统了,还是越狱了,不管是抹掉数据了,还是不小心摔了,返回的都是牢靠的一个唯一标识 不和任何其他苹果设备的标识重复。

但是,但是,但是因为它太牢靠了,有人告诉苹果,这个标识泄露了个人隐私,因为它太精准定位了。

所以,所以,所以它被苹果废了。从ios5开始,就废了,当然它最终的被苹果kill掉和拒绝上架,是在 2013年初的申明中,实际操作是在2013年4月开始,所有调用了这个API的APP都无法上架。

ios2~ ios4


OPENUDID

在苹果废掉了 uniqueIdentifier之后,聪明的开发者用自己的聪明才智开发了类uniqueIdentifier的库,它叫 OpenUDID,不赘述了,它的性能几乎和前辈
uniqueIdentifier一致,之所以说是几乎,是因为,如果你重装os,恢复出厂设置等等操作之后,这个值它会变化。

ios2 ~ ios7


双生侠IDFA & IDFV

在黑暗的只能使用mac和openudid的 ios5过去之后,苹果终于良心发现,它发现不行,如果没有了 uniqueIdentifier好多事情都很不方便。

所以他重新申明了2个API.

IDFA

对所有的开发者供应商,它都返回同一个值,但是它有openudid同样的缺点,它可能会变。

参考使用:ASIdentifierManager/advertisingIdentifier

IDFV

对同一个开发者供应商开发的所有APPs,它返回的是同一个值。 如果是另外一个开发商的APP中去取这个值返回的是另外一个值。

参考使用:UIDevice/identifierForVendor

ios6 ~ ios7
转载自:http://www.chilltouch.com/tags/openudid
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: