You need to enable JavaScript to run this app. 集成AdMob Facebook中介组件后应用崩溃问题求助
优惠活动
大模型
产品
解决方案
定价
更多

集成AdMob Facebook中介组件后应用崩溃问题求助

崩溃原因与修复步骤

核心根因

该崩溃是Google Mobile Ads SDK 与 GoogleMobileAdsMediationFacebook 版本不兼容导致的。
旧版本Facebook中介适配器的内部实现会调用已被高版本Google Mobile Ads SDK移除的+[GADRequest sdkVersion]类方法。该方法在Google Mobile Ads SDK 7.0.0及以上版本中已从GADRequest类中下线,迁移至GADMobileAds类下,适配器找不到对应方法就会直接抛出未识别选择子的异常,和你日志里打印的Adapter初始化失败的报错完全对应。

具体修复操作

  • 严格对齐依赖版本,不要不指定版本号直接拉取最新库
    你当前Podfile里只写pod 'Google-Mobile-Ads-SDK'和pod 'GoogleMobileAdsMediationFacebook'会各自拉取当前最新版,一旦Facebook适配器的版本还未适配拉到的Google Mobile Ads SDK版本,就会触发该崩溃。
    需要在Podfile里明确标注两个库的兼容版本号,示例:
    # 示例为经过验证的兼容版本组合,请以官方公开的版本适配说明替换为当前适配的版本
    pod 'Google-Mobile-Ads-SDK', '~> 9.13.0'
    pod 'GoogleMobileAdsMediationFacebook', '~> 6.12.0.1'
    
  • 彻底清理旧依赖重装
    修改完Podfile后不要直接执行pod install,先清理本地残留的旧依赖、缓存和冲突文件,依次执行以下命令:
    pod deintegrate
    pod cache clean --all
    rm -rf Podfile.lock
    pod install
    
  • 修正冗余的初始化逻辑
    你当前的初始化代码重复调用了两次GADMobileAds.sharedInstance().start,虽然不是本次崩溃的直接诱因,但会触发适配器重复初始化,容易引发其他偶发异常,改成单次调用即可:
    func register() {
        GADMobileAds.sharedInstance().start { status in
            let adapterStatuses = status.adapterStatusesByClassName
            for adapter in adapterStatuses {
                let adapterStatus = adapter.value
                NSLog("Adapter Name: %@, Description: %@, Latency: %f", adapter.key,
                      adapterStatus.description, adapterStatus.latency)
            }
        }
    }
    
  • 补充排查项:如果调整版本后仍崩溃,检查项目中是否存在手动引入的旧版GoogleMobileAds.framework静态库,这类残留框架会和Pod管理的新版SDK产生符号冲突,直接删除所有手动引入的旧AdMob相关框架,只保留CocoaPods拉取的依赖即可。

内容的提问来源于stack exchange,提问作者Ahsan Aasim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 06:24:05