测试时持续收到FacebookAdvertiserIDCollectionEnabled为FALSE的警告求助
解决Facebook Audience Network的FacebookAdvertiserIDCollectionEnabled警告问题
可能的问题点及修复方案
1. 代码执行顺序错误
你当前先初始化FBSDKApplicationDelegate再设置广告ID收集开关的顺序有问题——Facebook SDK初始化时会读取默认配置,此时isAdvertiserIDCollectionEnabled还未被设置为YES,导致警告持续出现。
修复: 调整代码顺序,先设置SDK参数再初始化代理:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // 先配置SDK参数 [FBSDKSettings.sharedSettings setAutoLogAppEventsEnabled:YES]; FBSDKSettings.sharedSettings.isAdvertiserIDCollectionEnabled = YES; // 再初始化SDK代理 [FBSDKApplicationDelegate.sharedInstance application:application didFinishLaunchingWithOptions:launchOptions]; // 其他业务代码... }
2. Info.plist配置不规范
确认FacebookAdvertiserIDCollectionEnabled的配置是否符合要求:
- 键名必须严格为**
FacebookAdvertiserIDCollectionEnabled**(首字母大写,驼峰格式) - 类型必须选择
Boolean,值勾选YES,不能设为字符串类型的"TRUE"
3. ATT权限未正确获取
仅启用应用追踪还不够,必须主动向用户申请App Tracking Transparency权限,否则系统会限制IDFA获取,Facebook SDK依然会判定未收集广告主ID。
添加权限请求代码:
#import <AppTrackingTransparency/AppTrackingTransparency.h> #import <AdSupport/AdSupport.h> // 在didFinishLaunchingWithOptions或用户首次交互时机添加 if (@available(iOS 14, *)) { [ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) { // 权限请求完成后,强制刷新SDK设置 FBSDKSettings.sharedSettings.isAdvertiserIDCollectionEnabled = YES; }]; }
同时要在Info.plist中添加NSUserTrackingUsageDescription键,填写向用户说明追踪用途的合规文案。
4. SDK版本存在bug
检查当前使用的FBSDKCoreKit和FBAudienceNetwork版本是否过旧,部分早期版本存在设置不生效的问题,建议更新到最新稳定版。
5. 缓存与构建问题
- 用
Cmd+Shift+K清理Xcode项目缓存 - 删除模拟器/真机上的应用后重新安装
- 重启Xcode,确保所有配置变更被正确加载
内容的提问来源于stack exchange,提问作者neobie
相关产品推荐
相关产品推荐

