添加 Admob 中介 Facebook 后应用程序崩溃

问题描述

我将 Google AdMob 集成到我们的应用中。当我只添加 Admob 时,一切都很完美。但随后我们开始实施 AdMob 中介。在我们添加 GoogleMobileAdsMediationFacebook pod 应用程序后开始崩溃并出现以下异常

Terminating app due to uncaught exception 'NSinvalidargumentexception',reason: '+[GADRequest sdkVersion]: unrecognized selector sent to class 0x10334f240'

这是我们在实施中介时所做的更改 在 Podfile 中添加了以下内容

  pod 'Google-Mobile-Ads-SDK'
  pod 'GoogleMobileAdsMediationFacebook'

注册 admob 时,

func register() {
        GADMobileAds.sharedInstance().start(completionHandler: nil)
        let ads = GADMobileAds.sharedInstance()
        ads.start { status in
            // Optional: Log each adapter's initialization latency.
            let adapterStatuses = status.adapterStatusesByClassName
            for adapter in adapterStatuses {
                let adapterStatus = adapter.value
                NSLog("Adapter Name: %@,Description: %@,Latency: %f",adapter.key,adapterStatus.description,adapterStatus.latency)
            }
        }
    }

以上代码记录如下,

2021-04-08 12:55:03.428056+0600 Quran Touch[542:38566] Adapter Name: GADMediationAdapterFacebook,Description: <GADAdapterStatus: 0x28158aa60; state = Not Ready;Adapter Failed to initialize. Adapter raised an exception during setup. Adapter: GADMediationAdapterFacebook,Exception: +[GADRequest sdkVersion]: unrecognized selector sent to class 0x10334f240>,Latency: 0.184458
2021-04-08 12:55:03.428157+0600 Quran Touch[542:38566] Adapter Name: GADMobileAds,Description: <GADAdapterStatus: 0x2815f01e0; state = Ready>,Latency: 0.022223

这些是我们为整合中介所做的唯一更改。在视图中加载横幅或任何其他广告时,应用程序崩溃

解决方法

通过在 CocoaPods 中为 Facebook Adapter 设置确切版本解决了问题:

pod 'GoogleMobileAdsMediationFacebook','~> 6.3'

发生异常是因为 CocoaPods 在“pod 更新”时获得了旧版本的 GoogleMobileAdsMediationFacebook。