升级VS 17.3.6后Xamarin.iOS模拟器构建报错:找不到匹配框架
解决Xamarin.iOS模拟器构建GoogleMobileAds框架匹配报错的方案
问题分析
报错核心是缓存的GoogleMobileAds 8.13.0版本xcframework不包含当前模拟器所需的架构(i386, x86_64),或框架文件因版本升级后兼容性问题损坏。
解决步骤
- 清理Xamarin构建缓存
手动删除指定路径的缓存目录:/Users/xxx/Library/Caches/XamarinBuildDownload/FAdM-8.13.0,删除后重新构建项目,触发框架的重新下载,确保获取完整兼容的文件。 - 升级GoogleMobileAds NuGet包
8.13.0版本发布时间较早,未适配Xamarin.iOS 16的模拟器架构要求,建议升级至最新稳定版NuGet包,新版本通常已修复这类兼容性问题。 - 验证xcframework架构支持
找到GoogleMobileAds.xcframework文件,右键选择「显示包内容」:- 进入
ios-x86_64-simulator目录,执行命令lipo -info GoogleMobileAds.framework/GoogleMobileAds,确认输出包含x86_64架构; - 若使用Apple Silicon芯片的Mac,需确保框架同时支持
arm64模拟器架构,可检查是否存在ios-arm64_x86_64-simulator目录。
- 进入
- 调整项目构建架构配置
在Visual Studio中打开项目属性:- 切换至「iOS构建」选项卡,点击「高级」按钮;
- 将「支持的架构」设置为
x86_64(Intel芯片Mac),或同时勾选x86_64和arm64(Apple Silicon芯片Mac); - 若为Apple Silicon设备,确保「启用模拟器的ARM64支持」选项已勾选。
- 重新安装NuGet依赖
卸载项目中的GoogleMobileAds NuGet包,清理项目的obj、bin目录后,重新安装对应版本的NuGet包,确保所有依赖文件正确部署。
内容的提问来源于stack exchange,提问作者SuperFrog
相关产品推荐
相关产品推荐

