CocoaPods无法找到兼容的Google-Mobile-Ads-SDK版本问题求助
解决AppLovin与Unity Mediation适配器的Google Ads SDK版本冲突问题
在使用Fastlane + Unity构建iOS项目时,CocoaPods安装依赖失败,核心问题是AppLovinMediationGoogleAdapter 10.6.0.0依赖Google-Mobile-Ads-SDK = 10.6.0,而UnityMediationAdmobAdapter 0.5.0依赖Google-Mobile-Ads-SDK ~>8.2,两者版本直接冲突。以下是几种可行的解决方案:
解决方案1:升级Unity Mediation Admob Adapter到兼容高版本Google Ads的版本
Unity Mediation的Admob Adapter后续版本已适配更高版本的Google Ads SDK,直接指定新版本即可解决冲突:
- 修改Podfile中
UnityMediationAdmobAdapter的依赖行,指定一个兼容Google Ads 10.x的版本(例如1.2.0,需确认仓库内最新可用版本):
pod 'UnityMediationAdmobAdapter', '1.2.0', :source => 'https://github.com/Unity-Technologies/unity-mediation-cocoapods-prod.git'
- 保持
UnityMediationSdk的版本约束为~>1.0即可保证兼容性 - 重新执行Fastlane的cocoapods步骤,或手动运行
pod install --clean-install验证
解决方案2:降级AppLovinMediationGoogleAdapter到兼容8.x Google Ads的版本
如果无法升级Unity适配器,可降级AppLovin适配器到依赖Google Ads 8.x的版本:
- 修改Podfile中的AppLovin相关依赖,指定适配8.x版本的适配器(例如8.2.0.0),同时匹配兼容的AppLovinSDK版本:
pod 'AppLovinMediationGoogleAdapter', '8.2.0.0' pod 'AppLovinSDK', '10.11.0' # 此版本与8.2.0.0适配器兼容
- 执行依赖安装步骤验证兼容性
解决方案3:移除重复的Mediation平台(推荐)
若同时集成了AppLovin Mediation和Unity Mediation,可只保留一个主Mediation平台,从根源避免冲突:
- 以AppLovin为核心:移除所有UnityMediation相关pod依赖,使用AppLovin官方适配器对接广告源
- 以Unity Mediation为核心:移除所有AppLovinMediation相关pod依赖,使用Unity Mediation官方适配器
这种方式既解决冲突,又减少冗余代码,是最优选择。
不推荐方案:强制统一Google Ads SDK版本(风险高)
通过CocoaPods的post_install钩子强制指定Google Ads SDK版本,但可能导致其中一个适配器运行时崩溃(AppLovin适配器要求严格等于10.6.0),仅作为最后尝试:
在Podfile末尾添加:
post_install do |installer| installer.pods_project.targets.each do |target| if target.name == 'Google-Mobile-Ads-SDK' target.build_configurations.each do |config| # 强制使用8.x最高兼容版本,例如8.13.0 config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)', 'GOOGLE_MOBILE_ADS_VERSION=8.13.0'] end end end end
内容的提问来源于stack exchange,提问作者Zaur Nachkebiya
相关产品推荐
相关产品推荐

