直接上代码
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];
}
由于请求时机太靠前
,导致权限d窗未d出,进而导致被拒 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 ~
参考
官方文档
我的公众号
欢迎关注~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)