You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS 15系统下ATTrackingManager.requestTrackingAuthorization失效问题咨询

iOS 15 下ATTrackingManager.requestTrackingAuthorization失效被苹果驳回的解决方案

问题根因

  • iOS 15 对ATTrackingManager.requestTrackingAuthorization的调用时机做了更严格的限制:在应用未完成启动进入活跃状态前调用该接口,系统会直接返回ATTrackingManagerAuthorizationStatusDenied,不会弹出用户授权弹窗,导致功能失效
  • 若Info.plist中配置的NSUserTrackingUsageDescription字段描述模糊,未明确说明追踪数据的用途,苹果审核会直接驳回应用,也会触发接口调用异常

适配解决步骤

1. 调整接口调用时机

不要在application:didFinishLaunchingWithOptions:方法中直接调用授权接口,改为监听UIApplicationDidBecomeActiveNotification通知,在应用进入活跃状态后再触发授权请求,参考代码如下:

// Objective-C 实现示例
- (void)viewDidLoad {
    [super viewDidLoad];
    // 监听应用进入活跃通知
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(requestTrackingAuth) name:UIApplicationDidBecomeActiveNotification object:nil];
}

- (void)requestTrackingAuth {
    if (@available(iOS 14, *)) {
        ATTrackingManagerAuthorizationStatus status = [ATTrackingManager trackingAuthorizationStatus];
        // 仅未授权时发起请求
        if (status == ATTrackingManagerAuthorizationStatusNotDetermined) {
            [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
                // 按需处理授权结果
            }];
        }
    }
}
// Swift 实现示例
override func viewDidLoad() {
    super.viewDidLoad()
    // 监听应用进入活跃通知
    NotificationCenter.default.addObserver(self, selector: #selector(requestTrackingAuth), name: UIApplication.didBecomeActiveNotification, object: nil)
}

@objc func requestTrackingAuth() {
    if #available(iOS 14, *) {
        let status = ATTrackingManager.trackingAuthorizationStatus
        // 仅未授权时发起请求
        guard status == .notDetermined else { return }
        ATTrackingManager.requestTrackingAuthorization { status in
            // 按需处理授权结果
        }
    }
}

如果应用存在开屏闪屏、开屏广告等流程,需要等开屏流程完全结束后再调用授权接口,避免授权弹窗被其他页面覆盖导致用户无法查看操作,触发苹果审核驳回。

2. 完善Info.plist权限描述

NSUserTrackingUsageDescription的描述必须清晰明确,如实告知用户追踪数据的具体用途,示例描述:

我们会将您的应用内活动数据用于个性化广告推送、产品体验优化,不会向第三方共享您的个人身份信息

禁止使用“需要获取权限以提升服务质量”这类模糊描述,不符合苹果审核规范。

3. 兼容授权结果处理

如果用户拒绝追踪授权,不得强制引导用户跳转系统设置页开启权限,也不得因为用户拒绝授权就限制应用核心功能的正常使用,否则也会被苹果审核驳回。

内容的提问来源于stack exchange,提问作者Tajinder singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 22:39:03