iOS ATTrackingManager iOS 15 弹窗不出现?

权限弹窗

直接上代码

    if (@available(iOS 14.0, *)) {
        // iOS14及以上版本请求权限
        [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
            if (status == ATTrackingManagerAuthorizationStatusAuthorized) {
                NSString *adid = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
            }
        }];
    } else {
       // 低于 iOS 14 
       NSString *adid = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
    }

由于请求时机太靠前,导致权限弹窗未弹出,进而导致被拒 T_T

官方文档说明
Calls to the API only prompt when the application state is UIApplicationStateActive.

所以,应该在 AppDelegate.m 的这个方法里面进行请求
- (void)applicationDidBecomeActive:(UIApplication *)application { // bla bla bla ~ }

或者接收通知 UIApplicationDidBecomeActiveNotification 后,再请求,bla bla bla ~


参考

官方文档


我的公众号

欢迎关注~
请添加图片描述


猜你喜欢

转载自blog.csdn.net/xjh093/article/details/121118445
ios