M1设备上WidgetKit扩展在iOS模拟器运行失败报错如何解决?
M1设备模拟器运行WidgetKit扩展报错解决方案
以下是经过验证的可行解决办法,按优先级排序:
- 方案1:配置排除arm64架构(优先推荐,不影响编译速度)
同时对主应用target和Widget Extension target做如下配置:
打开Xcode的项目构建设置(Build Settings),找到Excluded Architectures(排除的架构)选项,在Any iOS Simulator SDK条目中添加值arm64,配置完成后清理项目重新编译运行即可。
该方案针对Xcode 13.x搭配iOS15模拟器的场景适配性最高,可直接解决架构不兼容导致的XPC调用异常问题。 - 方案2:清理Xcode与模拟器缓存
执行以下操作后重新运行项目:- 退出Xcode,删除DerivedData缓存目录,执行终端命令:
rm -rf ~/Library/Developer/Xcode/DerivedData - 打开模拟器,选择顶部菜单「设备」-「删除所有内容和设置」重置模拟器,或直接删除现有模拟器设备后重新添加
- 重启Xcode,按下
Cmd+Shift+K执行清理构建,之后重新运行项目
- 退出Xcode,删除DerivedData缓存目录,执行终端命令:
- 方案3:升级开发工具版本
该报错是Xcode 13.x版本搭载iOS15模拟器在M1芯片设备上的已知原生bug,将Xcode升级到14及以上版本,同时使用iOS16及以上版本的模拟器,可直接规避该问题。 - 方案4:Rosetta模式运行Xcode(临时兼容方案)
右键Finder中的Xcode应用图标,选择「显示简介」,勾选「使用Rosetta打开」选项,重启Xcode后再运行项目即可正常启动Widget扩展,该方案会降低项目编译速度,仅推荐临时测试使用。
内容的提问来源于stack exchange,提问作者Lio
相关产品推荐
相关产品推荐

