需要先把隐私开关关闭:设置->隐私->跟踪
代码:https://github.com/haiwei-Lee/DeviceInfoCollection
来源:https://www.jianshu.com/p/be37f85f73a6
--------------------------------------------------
iOS 中的“限制广告跟踪”设置
选中此方框,即表示您确认,在使用广告标识符(按照《Apple Developer Program 许可协议》(“PLA”)中的定义)投放任何广告之前,您(以及与您签约以投放广告的任何第三方)将查看用户的广告偏好设置(按照 PLA 中的定义),并遵守用户在 iOS 中的设置(当用户启用该设置时)。
对于广告标识符 (IDFA) 的使用,请务必作出准确的回答。如果您的 App 包含 IDFA 而您选择了“不”,则此二进制文件将被永久拒绝,您必须提交另一个二进制文件。
---------------------------------------------------
来源:https://www.jianshu.com/p/5f05bc8395f1
iOS14系统已经可以开始下载了,但是有一些需要适配的地方,比如获取idfa的方式。这里我们来讨论一下如何在IOS14系统下获取idfa。
所需环境
1.xcode需要升级到最新版本12.0版本。
2.手机需要升级到最新版本14.0版本。
iOS14系统之前获取idfa
1.先导入框架#import <AdSupport/ASIdentifierManager.h>
2.获取广告标识
// 判断在设置-隐私里用户是否打开了广告跟踪if([[ASIdentifierManager sharedManager]isAdvertisingTrackingEnabled]){NSString*idfa=[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];NSLog(@"%@",idfa);}else{NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");}
iOS14及以上系统 获取广告标识idfa
iOS14以上系统,需要先请求跟踪权限,用户同意后才能获取到广告标识。
1.在info.plist文件里添加跟踪权限请求描述文字
注意:该权限只有xcode12及以上版本才有,现在大家只能去下载xcode12版本的来使用了。
image.png
2.导入框架
#import#import
3.获取idfa
if(@available(iOS14,*)){// iOS14及以上版本需要先请求权限[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status){// 获取到权限后,依然使用老方法获取idfaif(status==ATTrackingManagerAuthorizationStatusAuthorized){NSString*idfa=[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];NSLog(@"%@",idfa);}else{NSLog(@"请在设置-隐私-跟踪中允许App请求跟踪");}}];}else{// iOS14以下版本依然使用老方法// 判断在设置-隐私里用户是否打开了广告跟踪if([[ASIdentifierManager sharedManager]isAdvertisingTrackingEnabled]){NSString*idfa=[[ASIdentifierManager sharedManager].advertisingIdentifier UUIDString];NSLog(@"%@",idfa);}else{NSLog(@"请在设置-隐私-广告中打开广告跟踪功能");}}
iOS14广告权限的位置已经变动到 设置->隐私->跟踪 里了。而且每个应用都会有自己单独的权限控制开关。在第一次请求权限的地方,还会弹出权限请求弹窗,供用户选择。
image.png
image.png
image.png