iOS10上,如果用户开启了“限制广告跟踪”选项(设置->隐私->广告),则在使用[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]
方法获取IDFA时会返回全部是0,如下:
有两种解决方案:
第一种方法是通过isAdvertisingTrackingEnabled
属性判断是否可以返回正确的IDFA,如果返回为NO,则可以提示用户去设置中关闭限制广告跟踪。代码如下:
1 | NSString *idfa = nil; |
另外一种更好的方法是使用第三方库获取IDFA,这里推荐两个第三方库:OpenIDFA和SimulateIDFA,个人更推荐SimulateIDFA,因为他的重复率更低。