什么是 IDFV
IDFV 是一个由字母数字构成的字符串,用于唯一标识程序供应商的设备。
如何获取 IDFV
NSString *vendor = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
//输出结果:94B854B0-AC0B-4F7F-8F0D-E32824317E83
IDFV 的变与不变
- 同一台设备上,来自同一个供应商的 App,IDFV 相同。
- 同一台设备上,来自不同厂商的 App,IDFV 不同。
- 不同设备的 IDFV 不同,与供应商无关。换言之,即使同一个厂商的 App,在不同设备上 IDFV 也不相同。
- 当 iOS 设备上存在同一厂商的其他应用时,删除 App 重装,IDFV 保持不变。
- 删除 iOS 设备上同一厂商全部 App,重新安装 App,IDFV 会发生改变。
- 使用 Xcode 安装测试版本或 ad-hoc 包时,IDFV 会发生改变。
IDFV 生成规则
- 通常 IDFV 由 AppStore 提供的数据决定。如果是企业包或开发包,IDFV 根据 App bundle ID 计算。
- iOS 7 之后,Bundle ID 除去最后部分,其他剩余部分用于计算生成 IDFV。如果 Bundle ID 只有一部分组成,则全部用来参与计算。
IDFV 与 IDFA
- 当实现广告投放系统时,建议使用
ASIdentifierManager
类的advertisingIdentifier
替代 IDFV。