iOS应用归档时Google Mobile Ads提示Bannerview.adunit已过时问题求助
报错原因
该错误是Google Mobile Ads iOS SDK版本迭代后,废弃了旧的AdUnit属性,强制要求使用AdUnitID属性设置广告单元ID导致的,常见于SDK从v6.x升级到v7.x及以上版本的场景。
解决方案
- 第一步:全局搜索项目中所有
BannerView相关的代码,将所有AdUnit属性赋值的写法,全部替换为AdUnitID。
你提供的代码片段中已经正确使用了AdUnitID属性,若仍有报错,排查以下两个问题:
- 项目编译缓存残留导致旧代码仍被识别,执行完整清理操作后重新打包:
清理项目解决方案 -> 手动删除项目根目录下的bin、obj文件夹 -> 重启IDE -> 重新执行归档操作
- 项目其他位置仍存在
AdUnit属性的调用,全局搜索项目内的AdUnit关键字,找到所有旧写法替换即可。
正确代码示例
private BannerView CreateBannerView() { if (_bannerView != null) return _bannerView; var origin = new CGPoint(0, UIScreen.MainScreen.Bounds.Size.Height - AdSizeCons.Banner.Size.Height); _bannerView = new BannerView(AdSizeCons.SmartBannerPortrait, origin) { AdUnitID = Element.AdUnitId, // 此处为正确写法,禁止使用已废弃的AdUnit属性 RootViewController = GetVisibleViewController() }; _bannerView.LoadRequest(GetRequest()); return _bannerView; } private Request GetRequest() { var request = Request.GetDefaultRequest(); // 其余广告请求配置逻辑保持不变即可 }
修改完成后先在Debug模式下编译确认无警告,再执行归档操作即可解决该报错。
内容的提问来源于stack exchange,提问作者Tariq Alsunaydih
相关产品推荐
相关产品推荐

