【IOS】获取iOS设备唯一标识的演进UDID, MAC Address,UUID,IDFA,IDFV,OpenUDID

本文探讨了iOS设备从UDID到IDFA, IDFV等多种唯一标识符的演变过程,包括UDID的封杀,MAC Address的限制,OpenUDID的失效,以及UUID和IDFA, IDFV的使用。在iOS 7之后,获取设备唯一标识变得复杂,开发者转向使用keychain结合IDFV或UUID作为解决方案,但这些标识在特定情况下可能重置。" 108642710,8765197,Unity中的Android主题应用,"['Unity开发', 'Android集成', 'UI样式']
摘要由CSDN通过智能技术生成

==== 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方法。具体可见:

http://stackoverflow.com/questions/677530/how-can-i-programmatically-get-the-mac-address-of-an-iphone

然而在iOS 7中苹果再一次无情的封杀mac地址,使用之前的方法获取到的mac地址全部都变成了02:00:00:00:00:00。

三.OPEN UDID

第三方最出名的莫过于此了,但是iOS7这货也无法使用了,由于iOS7对剪贴板(OpenUDID保存到剪贴版中)的限制,导致同一个设备上应用间,无法再共享一个OpenUDID。

OpenUDID原理:安装第一个OpenUDID开发的游戏App1,生成OpenUDID,安装第二款OpenUDID的App2,会从剪贴板中获

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值