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

从Xcode 15.1升级到Xcode 16后出现Undefined symbol: _OBJC_CLASS_$_ADClient错误

解决Xcode 16升级后ADClient/iAd框架构建错误

问题原因

Xcode 16正式移除了iAd框架中的ADClient类,苹果早在iOS 14+就已废弃iAd的归因能力,转而推荐使用AdServices框架提供的归因API替代。

解决方案

  1. 替换框架依赖
    在项目的Build Phases > Link Binary With Libraries中移除iAd.framework,添加AdServices.framework(设置为Optional以兼容低版本系统)。

  2. 更新归因请求代码
    将原ADClient的requestAttributionDetails调用替换为AdServices框架的AAAttribution API:

    原代码示例:

    #import <iAd/iAd.h>
    
    [[ADClient sharedClient] requestAttributionDetailsWithBlock:^(NSDictionary *details, NSError *error) {
        // 处理归因详情
    }];
    

    替换后的Swift代码:

    import AdServices
    import AppTrackingTransparency
    
    // iOS 14+需先请求ATT权限
    ATTrackingManager.requestTrackingAuthorization { status in
        guard status == .authorized else { return }
        
        AAAttribution.shared().requestAttributionDetails { details, error in
            if let attributionDetails = details {
                // 解析归因数据
            } else if let error = error {
                // 处理错误
            }
        }
    }
    
  3. 添加权限描述
    在Info.plist中添加NSUserTrackingUsageDescription键,填写向用户说明追踪用途的文案,例如:"需要获取您的设备标识符以提供个性化广告服务"。

注意事项

  • 若需支持iOS 13及以下版本,需保留条件编译逻辑,针对不同系统版本调用对应框架的API。
  • 需在App Store Connect的App隐私设置中配置广告追踪相关选项。

内容的提问来源于stack exchange,提问作者K N Sarvaiya

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 09:23:11