iOS开发之 ~ IDFA唯一标识符 (一)

通过网上查资料看,我发现有一部分人使用IDFA用来做设备唯一标识,我个人觉的不是很好!有很大的缺陷,为什么呢?下面来详细解说

要使用IDFA首先要导入系统库 @import AdSupport;

1
@property(nonatomic, readonly) NSUUID *advertisingIdentifier;

IDFA是每个设备特有的字母数字串,仅用于服务广告。(官方解释)

可以理解为广告标识符,在同一个设备上的所有App都会取到相同的值,是苹果专门给各广告提供商用来追踪用户而设的。广告标示符是由系统存储着的。
适用于对外:例如广告推广,换量等跨应用的用户追踪等。

此属性与identifierForVendor(IDFV)不同,它在同一个设备上,所有供应商返回的都是同一个值,可能会改变: 例如:手机重置(抹掉所有内容和设置)会导致变化。

有以下几种情况会导致变化:

1.设置 -> 通用 -> 还原 -> 抹掉所有内容和设置

2.设置 -> 隐私 -> 广告 -> 限制广告跟踪(开 / 关)

下面限制广告跟踪开关
关闭时: 可以获取到IDFA
打开时: 无法获取到IDFA

a.打开限制的情况下

b.关闭限制的情况下

  • 官方也提供了广告跟踪是否可用的接口
1
BOOL isEnabled = [[ASIdentifierManager sharedManager] isAdvertisingTrackingEnabled];

小结:
1.限制广告追踪开关切换会导致变化;
2.重置手机也会导致变化
总结:由于各种不稳定,个人建议使用 IDFV + KeyChain 做为用户的设备唯一标识,此方式会在后面继续讲解.

Demo下载地址:

点击下载

打赏
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2012-2022 Soto Pu

请我喝杯咖啡吧~

支付宝
微信