美文网首页iOS开发知识点iOS开发权限问题
iOS 14 关于IDFA 权限的申请及其变化

iOS 14 关于IDFA 权限的申请及其变化

作者: 随缘吖 | 来源:发表于2020-07-03 12:28 被阅读0次

    2020年09月03日
    

    目前苹果已发出通知,关于idfa权限问题将会在明年才开始实行

    在 Apple,我们认为隐私是一项基本人权。正如在 WWDC20 上所宣布的,App Store 产品页面将包含一个新的隐私信息部分,帮助用户了解 app 的隐私保护做法。今天我们将为开发者发布更多详情,列明新的隐私部分所涵盖的内容。此功能将在年底之前向用户推出。而在下个月底前,您将能够通过 App Store Connect 提交相关信息,为其做好准备。

    此外,在 iOS 14、iPadOS 14 和 Apple tvOS 14 上,您需要征得用户的许可,才能在其他公司所拥有的 app 和网站上跟踪用户,或访问其设备的广告标识符。我们致力于确保用户拥有是否接受 app 跟踪的选择权。为让开发者有时间进行必要的更改,app 需要获得跟踪用户许可的要求将从明年年初开始实行。更多相关信息,包括 App Store 审核指南的更新,将在今年秋天发布。


    2020年08月17日
    

    测试发现,如果将APP追踪的总开关关闭的话,新安装的APP就算是调用申请idfa权限的方法,系统权限弹窗也不会弹出


    截屏2020-09-06 17.05.01.png

    idfa是App推广过程中识别用户的重要标识数据!在iOS 14 之后,关于idfa的获取发生了变化,将会对APP的推广产生较大的影响

    今天我们从代码层次来进行探讨 关于idfa的变动
    在iOS14 之前我们都是这样获取的

    引入头文件
    #import <AdSupport/AdSupport.h>
    代码实现
      if ([ASIdentifierManager.sharedManager isAdvertisingTrackingEnabled]) {
            NSString * idfa = [ASIdentifierManager.sharedManager advertisingIdentifier].UUIDString;
      }else {
            NSLog(@"用户开启了限制广告追踪");
      }
    

    但是在iOS14中,获取我们还是通过同样的方法进行获取,但是我们需要先进行权限的申请(和使用定位相机一样),如果不申请权限,获取到的idfa 将会是 0000-0.......000

    • 在info.plist 中添加 权限申请描述
    <key>NSUserTrackingUsageDescription</key>
    <string>请根据您业务需求进行填写</string>
    
    
      • 可参考某宝
    • 进行权限判断,根据不同权限进行判断
    if (@available(iOS 14, *)) {
            ATTrackingManagerAuthorizationStatus status = ATTrackingManager.trackingAuthorizationStatus;
            switch (status) {
                case ATTrackingManagerAuthorizationStatusDenied:
                    NSLog(@"用户拒绝");
                    break;
                case ATTrackingManagerAuthorizationStatusAuthorized:
                    NSLog(@"用户允许");
                    break;
                case ATTrackingManagerAuthorizationStatusNotDetermined:
                    NSLog(@"用户为做选择或未弹窗");
                    break;
                default:
                    break;
            }
        } else {
            // Fallback on earlier versions
           if ([ASIdentifierManager.sharedManager isAdvertisingTrackingEnabled]) {
           }else {
              NSLog(@"用户开启了限制广告追踪");
           }
        }
       
    
    • 申请权限
        if (@available(iOS 14, *)) {
            [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
                NSLog(@"app追踪权限:%lu",(unsigned long)status);
            }];
         } else {
            // Fallback on earlier versions
         }
    
    • 获取idfa
    NSString * idfa = [ASIdentifierManager.sharedManager advertisingIdentifier].UUIDString;
    

    附件:


    iOS 14 类文件 权限的开关

    相关文章

      网友评论

        本文标题:iOS 14 关于IDFA 权限的申请及其变化

        本文链接:https://www.haomeiwen.com/subject/kvqsqktx.html