Apple官方说明
https://support.apple.com/zh-cn/HT212025
https://developer.apple.com/cn/app-store/user-privacy-and-data-use/
在iOS14.5及之后的系统版本中默认关闭了IDFA的访问权限,如需访问苹果会给用户出弹窗提醒,开发者将需要获得明确的权限才能访问设备上广告标识符(IDFA),这样才能跨应用和网站跟踪用户以进行广告定位,用户可以在 设置-隐私 中对App权限访问进行开关控制
关闭权限的影响:
如果用户拒绝了该权限,调用API时返回的标识为一串全为0的UUID字符串,不会造成Crash
适配的工作:(保留现在SDK的情况下)
1.为了适配需要在Info.plist处增加权限说明字段 NSUserTrackingUsageDescription 并且使用前进行相关的权限请求操作
2.在App的"隐私权限"页面部分中声明
无法获得IDFA的问题
以下情况默认不能获取:
1.教育机构的设备、或者安装了明确禁止该权限描述文件的设备
2.使用儿童Apple账号
3.注册未满三天的AppleID登录的设备
#import <AppTrackingTransparency/ATTrackingManager.h> #import <AdSupport/AdSupport.h> NSLog(@"广告标识IDFA为:%@", [ASIdentifierManager sharedManager].advertisingIdentifier.UUIDString); if (@available(iOS 14.0, *)) { if (ATTrackingManager.trackingAuthorizationStatus != ATTrackingManagerAuthorizationStatusAuthorized) { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { NSLog(@"追踪的新状态为:%@", @(status)); }]; } } else { }