Flutter集成flutter_native_admob后iOS端广告无法正常加载如何解决
修复方案
以下是按优先级排序的排查修复步骤:
- 替换iOS端测试广告ID
你当前使用的ca-app-pub-3940256099942544/2247696110是安卓平台的原生广告测试ID,iOS平台原生广告测试ID为ca-app-pub-3940256099942544/3986624511,需要针对平台做差异化配置:
import 'dart:io'; String get nativeAdUnitId { if (Platform.isAndroid) { return 'ca-app-pub-3940256099942544/2247696110'; } else if (Platform.isIOS) { return 'ca-app-pub-3940256099942544/3986624511'; } return ''; }
将NativeAdmob组件的adUnitID参数替换为上述动态获取的值即可。
- 检查iOS端基础配置
- 打开iOS项目的
Info.plist文件,确认已添加GADApplicationIdentifier字段,值为AdMob后台对应iOS应用的APP ID,不要混用安卓端的APP ID - 确认
Info.plist中已添加AdMob要求的SKAdNetworkItems配置项,iOS14及以上版本必须配置该字段才能正常加载广告 - 确认Xcode中Runner项目的最低部署版本(iOS Deployment Target)≥10.0,低于该版本会出现兼容问题
- 清理重装iOS依赖
进入项目ios目录,执行以下命令清理旧依赖重新安装:
pod deintegrate rm Podfile.lock pod install --repo-update
- 添加错误日志排查
给NativeAdmobController添加状态监听,打印具体错误信息辅助定位:
@override void initState() { super.initState(); _controller = NativeAdmobController(); _controller.addListener(() { if (_controller.state == AdLoadState.loadFailed) { print("广告加载错误码:${_controller.errorCode}"); } }); }
内容的提问来源于stack exchange,提问作者Berke Ay
相关产品推荐
相关产品推荐

