==== Apple公司于2013年5月1日开始,拒绝采集UDID的App上架App Store
==== iOS 5.0 之后uniqueIdentifier方法就被废弃掉了;
==== iOS 7.0 中苹果又封杀mac地址。
==== iOS 7.0 系统把粘贴板的访问权限限制在了同一个开发者的范围内OpenUDID失效.
所以说,现在想通过代码获取是不可能的了,如果你想看看你设备的UDID,可以通过iTunes来查看。
而且我们需要注意的一点是,对于已越狱了的设备,UDID并不是唯一的.使用Cydia插件UDIDFaker,可以为每一个应用分配不同的UDID.
所以UDID作为标识唯一设备就不要幻想了
目前最终方案:
idfv + keychain
或者
UUID + keychain
唯一缺点:用户抹掉iPhone数据,刷机或重装系统会让该id重置.
一.UDID(Unique Device Identifier)
UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成。每台iOS设备的UDID是唯一且永远不会改变。但是Unique Device Identifier 最早就被苹果封杀了,使用后上线会被拒绝。
那么有没有另外的办法来获取用户设备的唯一标识符呢?答案是有的,当然这样的标识符不是苹果隐藏的UDID了,使用OpenUDID开源代码,这个代码通过一些特殊的算法,创建了每一个设备的唯一标识符,你可以拿过来用来识别设备了。
但是.OpenUDID是用系统粘贴板作为中间存储供所有app调用.IOS7系统把粘贴板的访问权限限制在了同一个开发者的范围内,既同一个开发者的多个app在同个设备上共享粘贴板 ,所以OpenUDID已经不可用.
二.MAC Address
使用WiFi的mac地址来取代已经废弃了的uniqueIdentifier方法。具体可见:
然而在iOS 7中苹果再一次无情的封杀mac地址,使用之前的方法获取到的mac地址全部都变成了02:00:00:00:00:00。
三.OPEN UDID
第三方最出名的莫过于此了,但是iOS7这货也无法使用了,由于iOS7对剪贴板(OpenUDID保存到剪贴版中)的限制,导致同一个设备上应用间,无法再共享一个OpenUDID。
OpenUDID原理:安装第一个OpenUDID开发的游戏App1,生成OpenUDID,安装第二款OpenUDID的App2,会从剪贴板中获