关于iOS14+ AppTrackingTransparency权限被拒处理

1.首先由于iOS14+后 默认需要主动调用AppTrackingTransparency权限、否则会被苹果审核打回

AppTrackingTransparency权限被拒截图

2、那我们来说一下如何使用

1>在info.plist中添加NSUserTrackingUsageDescription声明

2>首先依赖的库是

    #import <AppTrackingTransparency/AppTrackingTransparency.h>

3>其次在- (void)applicationDidBecomeActive:(UIApplication*)application 代理方法中调用广告权限(当然也可以放到其他位置,例如didFinishLaunchingWithOptions)

 // 授权广告权限

    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{

        if(@available(iOS14, *)) {

            [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {

                if (status == ATTrackingManagerAuthorizationStatusAuthorized || status == ATTrackingManagerAuthorizationStatusDenied || status == ATTrackingManagerAuthorizationStatusRestricted ) {

//                    self.trackingTag = self.trackingTag + 1; // 启动只接受一次ATTrackingManager回调

//                   调用自己或者第三方激活接口

                }

            }];

        }else{

//            self.trackingTag = self.trackingTag + 1; // 启动只接受一次ATTrackingManager回调

//           调用自己或者第三方激活接口

        }

    });

Tips:这里需要说明一下:

*当前授权状态。如果广告授权未弹出还没有提示用户批准访问,则返回值为

* ATTrackingManagerAuthorizationStatusNotDetermined,或者ATTrackingManagerAuthorizationStatusRestricted如果这个值被管理。

*广告授权弹出用户被提示,返回值将是ATTrackingManagerAuthorizationStatusDenied(拒绝)或ATTrackingManagerAuthorizationStatusAuthorized(同意)。

ATTrackingManagerAuthorizationStatusRestricted 这个枚举值猜测是apple 广告授权弹出异常的时候会返回此值,为了不影响激活统计 也将此情况下调用激活

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容