运行测试时构建失败:<yourproject>.swiftmodule未针对arm64编译
解决arm64架构下Swiftmodule构建失败问题
检查项目与Target的架构一致性
别只看项目根设置,所有测试Target的架构得统一:- 打开Xcode,点左侧导航栏最顶部的项目文件
- 切到
Project标签的Architectures区域,确认Architectures是arm64,Valid Architectures里也有arm64 - 逐个点开测试Target的
Build Settings,重复上面的检查,防止某个Target偷偷设了其他架构
清掉构建缓存
缓存残留大概率是坑,直接这么操作:- 菜单栏选
Product > Clean Build Folder(快捷键Cmd+Shift+K) - 手动删
~/Library/Developer/Xcode/DerivedData里对应项目的缓存文件夹
- 菜单栏选
确认运行目标的架构匹配
项目设了arm64也没用,得看你选的运行目标支不支持:- 用模拟器的话,必须选Apple Silicon模拟器(比如iPhone 15),Intel模拟器不认arm64;要是非得在Intel模拟器跑,就在
Build Settings里把x86_64加进Architectures,然后给模拟器的Excluded Architectures排除arm64 - 用真机的话,得是Apple Silicon芯片的设备(iPhone 8及以后),而且iOS版本得符合项目最低要求
- 用模拟器的话,必须选Apple Silicon模拟器(比如iPhone 15),Intel模拟器不认arm64;要是非得在Intel模拟器跑,就在
排查第三方依赖的架构支持
要是用了CocoaPods之类的工具,得确认所有依赖都支持arm64:- 跑
pod deintegrate再pod install,重新装一遍依赖 - 查每个第三方库的说明,别用只支持x86_64的老库
- 跑
调整Build Settings的隐藏配置
有些深层设置会搞事情:- 在
Build Settings里搜Build Active Architecture Only,改成NO(Debug模式默认可能是YES,只会编译当前设备架构,测试时得全架构编译) - 搜
VALID_ARCHS,确保里面有arm64;要是没这个选项,就通过Editor > Add Build Setting > Add User-Defined Setting手动加
- 在
内容的提问来源于stack exchange,提问作者ScottyBlades
相关产品推荐
相关产品推荐

