苹果官方对于iOS设备唯一标识的官方文档链接:
https://developer.apple.com/reference/uikit/uidevice/1620059-identifierforvendor
近日因为公司app有“一账号一设备”的需求,外包已完成此功能,个人也研究了一下,但发现和外包获取的不一样。所以想在此说明一下,以便大家参考。
设备唯一标识简介:
IDFV:
全拼:identifierForVendor
获取设备标识采用的是以下代码片段:
NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
来源:iOS6.0及以后
简要说明:IDFV是给Vendor(应用提供商)标识用户用的,每个设备在所属同一个Vendor的应用里,值都是相同的。准备的说IDFV的值是通过BundleID的反转的前两部分进行匹配,如果相同就是同一个Vendor,共享一个IDFV的值。
与IDFA(advertisingIdentifier)比较:
IDFV的值一定可以取到,所以从这个角度来说很适合作为内部用户行为分析的主id,来标示用户,替代openUDID。
而IDFA则不一定可以取到。
注意:如果用户将属于此Vender的所有App卸载,则idfv的值会被重置,即再重装此Vender的App,idfv的值和之前不同。