iOS14-AppTrackingTransparency(id

作者: 上发条的树 | 来源:发表于2021-04-25 17:09 被阅读0次

参考:

AppTrackingTransparency

截止至2020年4月25日,实测更新iOS系统至iOS14.4.2,设置->隐私->跟踪允许App请求数据的总开关是默认开启的(可能由更新之前旧系统中允许获取idfa的开关决定的),因此如果使用旧的代码,不需要调用授权代码,仍然可以获取到idfa。

截屏2021-04-25 16.54.27.png

苹果官网明确指出:

确保您的应用已准备好用于iOS 14.5,iPadOS 14.5和tvOS 14.5。在即将发布的公共发行版中,所有应用都必须使用AppTrackingTransparency框架来请求用户允许其跟踪或访问其设备的广告标识符的权限。除非您获得用户允许启用跟踪的权限,否则设备的广告标识符值将全为零,并且您可能无法跟踪它们。

因此 AppTrackingTransparency 是必须适配的,后面更新到 iOS14.5 ,旧的获取方式就不好使了。两个步骤:
1、工程 Info.plist文件新增用户授权提示文案,用 Source Code的方式打开Info.plist文件,添加如下代码,string值可根据实际需要自行设置:

<key>NSUserTrackingUsageDescription</key>
<string>此标识符将用于向您发送个性化广告。</string>

2、代码适配:

导入框架:

#import <AdSupport/AdSupport.h>
#import <AppTrackingTransparency/AppTrackingTransparency.h>

iOS版本判断:

- (NSString*)idfa {
    __block NSString *idfa = @"";
    ASIdentifierManager *manager = [ASIdentifierManager sharedManager];
    if (@available(iOS 14, *)) {
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                idfa = [[manager advertisingIdentifier] UUIDString];
            }
        }];
    }else{
        if ([manager isAdvertisingTrackingEnabled]) {
            idfa = [[manager advertisingIdentifier] UUIDString];
        }
    }  
    return idfa;
}

在iOS14 以上的系统,一旦执行授权代码requestTrackingAuthorizationWithCompletionHandler,只有第一次授权会弹出系统提示框,如下:

授权提示框

应用也会增加到 设置->隐私->跟踪的列表中:

授权应用列表

注意:

1、如果关闭列表中对应的应用的开关,再开启,该应用的idfa值不变;
2、如果关闭总跟踪开关(“允许App请求跟踪”)再开启,则应用的开关需要单独开启,且应用的idfa值会改变;

相关文章

  • iOS14-AppTrackingTransparency(id

    参考: https://developer.apple.com/news/?id=8h0btjq7[https:/...

  • id = ID

    #import + (NSDictionary *)replacedKeyFrom...

  • ID385、ID386、ID387、ID388、ID389、ID

    原文: 11成帝在石头①,右卫将军刘超。帝泣曰:“还我侍中。”让不奉诏,遂斩超、雅。事平之后,陶公与让有旧,欲宥之...

  • ID463、ID464、ID465、ID466、ID467、ID

    原文: 22殷中军为庾公长史①,下都,王丞相为之集②,植公、王长史、王蓝田、谢镇西并在⑧。丞相自起解帐带麈尾...

  • ID1439、ID1440、ID1441、……ID1462、ID

    原文: 6正始中①,人士比论,以五荀方五陈②:荀淑方陈寔③,荀靖方陈谌④,荀爽方陈纪⑤,荀彧方陈群⑥,荀顗...

  • id()

    转载须注明出处:简书@Orca_J35 ?id(object) 该函数会返回 object 的"标识符(ident...

  • ID

    准心划过敌人的头部,红色的ID显示了出来。 他的手轻微地颤抖了,少见地狙空了。 那个ID。 那个曾与他并肩作战的I...

  • ID

    刚刚吹头发的时候在想一个傻傻的问题:要不要把那个人再加回来。当前社会,人和人的联系在于那几个ID的连结。我有点想知...

  • id is ==

    id() 获取当前对象或基础类型的数据的地址 a is b 判断a与b的地址是否相同 a == b 判断a与b的值...

  • Id

    Android View.setId(int id) 的用法 当要在代码中动态的添加View并且为其设置id时,如...

网友评论

    本文标题:iOS14-AppTrackingTransparency(id

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