Storyboard出现@IBDesignable错误:Auto Layout状态更新失败如何解决?
解决Storyboard加载GoogleMobileAds.framework架构不匹配的问题
我之前也碰到过一模一样的情况——项目能正常编译跑模拟器,但打开Storyboard就报架构不匹配的错误,折腾了好一会儿才搞定,给你几个靠谱的解决步骤:
先确认framework的架构是否完整
打开终端,cd到你的项目里GoogleMobileAds.framework所在的目录,执行命令:lipo -info GoogleMobileAds.framework/GoogleMobileAds看看输出里有没有包含模拟器需要的架构:比如Intel Mac的模拟器是
x86_64,Apple Silicon Mac的模拟器是arm64。如果缺了其中一个,说明你用的SDK版本不对或者下载错了。重新获取正确的SDK包
直接去Google Ads官网下载最新的官方SDK,或者如果你用CocoaPods的话,执行:pod update Google-Mobile-Ads-SDK官方最新的SDK都会同时包含真机和模拟器的架构,能避免这种匹配问题。
清理项目缓存,避免旧架构残留
- 先清掉Build Folder:按下
Command+Shift+K,或者在Xcode顶部菜单选Product -> Clean Build Folder - 再删除Derived Data:打开Xcode的
Settings -> Locations,找到Derived Data那一行,点击右边的箭头打开文件夹,删掉你这个项目对应的文件夹。
- 先清掉Build Folder:按下
检查Xcode的架构配置
打开项目的Build Settings,找到Architectures相关选项:- 确保
Architectures设置为Standard Architectures (arm64, x86_64)(不同Xcode版本可能表述略有不同) - 检查
Excluded Architectures,在模拟器的配置里,不要把x86_64或者arm64加进去——有时候不小心加了会导致模拟器找不到对应架构。
- 确保
临时规避Storyboard加载问题(应急用)
如果上面的步骤都试了还是不行,可以先把Storyboard里的previewController暂时删掉,改用代码创建这个控制器,这样Storyboard就不会在加载时触发framework的架构检查,等项目稳定了再移回Storyboard。
内容的提问来源于stack exchange,提问作者Appdev02
相关产品推荐
相关产品推荐

