美文网首页
设唯一标识

设唯一标识

作者: 小凡凡520 | 来源:发表于2018-08-05 15:33 被阅读5次
IMEI

International Mobile Equipment Identity,国际移动设备身份码,在手机组装完成后赋予的一个全球唯一的号码,由于此时 iPhone 只支持单卡,所以 IMEI 和 iPhone 是一一对应的

iOS 2 提供了一种方法获取 IMEI,但是为了保护用户隐私,iOS 5 以后苹果不再允许获取 IMEI 了,如果你在应用中获取 IMEI,可能会遭到 Apple Store 的拒绝

IDFA

Identifier for Identifier,即广告标识符,多用于用户的广告追踪,是每台设备的唯一 ID,IDFA 存储在用户的系统上。Apple 是不允许开发者追踪用户设备的,但是为了监控广告效果,在 iOS 6 中提供这个折中方案,但 IDFA 也会发生变化,比如重置系统、还原广告标识符等。同时,用户也可以选择是否禁止广告追踪(即商家没办法根据用户的行为偏好推送广告)

UDID

Unique Device Identifier,中文意思是设备唯一标识. 在很多需要限制一台设备一个账号的应用中经常会用到,在Symbian时代,我们是使用IMEI作为设备的唯一标识的,可惜的是Apple官方不允许开发者获得设备的IMEI.

1.用于一些统计与分析目的;【第三方统计工具如友盟,广告商如ADMOB等】
2.将UDID作为用户ID来唯一识别用户,省去用户名,密码等注册过程。
3.UDID被弃用,可以使用UUID来作为设备的唯一标识。获取到UUID后,如果用NSUserDefaults存储,当程序被卸载后重装时,再获得的UUID和之前就不同了。使用keychain存储可以保证程序卸载重装时,UUID不变。但当刷机或者升级系统后,UUID还是会改变的。
Mac 地址

Medium/Media Access Control,网络设备的物理地址,如果 IMEI 被认为是设备的唯一标识,那么 Mac 就是网络接口唯一标识。学过计算机网络都知道,在根据 IP 进行物理寻址的时候就是使用的 Mac 地址。

同样由于隐私问题,在 iOS 7 之后无法通过 Mac 地址来标识唯一设备,因为在 iOS 7 之后获取到的 Mac 地址为一固定值

NSUUID

Universally Unique IDentifier,中文意思是通用唯一识别码。UUID是一个软件建构的标准,也是被开源软件基金会(Open Software Foundation,OSF)的组织在分布式计算环境(Distributed Computing Environment,DCE)领域的一部份.UUID的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需要透过中央控制端来做辨识资讯的指定. 根据以上定义可知,同一设备上的不同应用的UUID是互斥的,即能在改设备上标识应用.但是并没有明确指出能标识出装有同一应用的不同设备,据推测,这个UUID应该是根据设备标识和应用标识生成唯一标识,再经过加密而来的.

NSUUID 与之前的 CFUUID 是一致的,只是改成了 Objective-C 的接口而已,NSUUID 每次获取的值都会发生变化,但是它会保持唯一性

UIDevice.current.identifierForVendor?.uuidString
IDFV

identifierForVendor,Vendor 标示符,也被称为厂商标识符。只要用户的设备中没有卸载当前 Vendor 的所有 APP,则不会发生变化。什么是 Vendor ?可以理解成 bundleID 的前两部分,例如对于 com.joy.app_1 和 com.joy.app_2 这两个 bundleID 来说,就属于同一个 Vendor ,共享同一个 IDFV。

IDFV 比较适合追踪用户行为,目前多配合 Keychain 来搭配使用,来保证不管是否卸载重装,IDFV 都是不变的

NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
LC_UUID

其实这个和 Device ID 没什么关系,但是因为也叫 UUID,防止造成误解,所以来解释下。LC_UUID 可以这么理解,是用来标示 Mach-O 的,你如果去查看你 APP 的崩溃日志,你会发现应用的可执行程序和各种库都有自己的 UUID,你在进行符号解析的时候,就需要找到与系统库和你 APP 的 UUID 相同的符号文件来进行堆栈地址还原。下面列举的最后一列是库或者 APP 的 UUID

结论

2017 年的我们想要通过 UDID、Mac 地址、OpenUDID 来定位用户设备已经是不可能啦,因为它们要么是无效,要么是受到了 App Store 的限制。但是如果你想要追踪广告的话,可以使用 IDFA,想要用来分析用户行为可以使用 IDFV + KeyChain 来解决。

相关文章

网友评论

      本文标题:设唯一标识

      本文链接:https://www.haomeiwen.com/subject/jydevftx.html