Xcode 14在M1设备运行UI测试时出现架构不兼容警告求助
警告内容
Warning: Error creating LLDB target at path
'/Users/abhishek.bedi/Library/Developer/Xcode/DerivedData/-hbkaixyoplhkzbdfcgkfxrqdklqt/Build/Products/
QA-iphonesimulator/MyUITests-Runner.app'- using an
empty LLDB target which can cause slow memory reads from
remote devices: the specified architecture
'arm64--' is not compatible with 'x86_64-apple-ios11.0.0-simulator'
警告说明
该问题是LLDB尝试为模拟器构建的MyUITests-Runner.app创建调试目标时失败,指定的arm64架构与当前x86_64架构的iOS 11模拟器不兼容,只能使用空调试目标,会导致远程设备内存读取变慢。
解决思路
调整项目架构设置
打开Xcode项目,进入主App和UITests目标的Build Settings:- 将
Architectures设置为Standard Architectures (arm64, x86_64),或直接针对模拟器指定x86_64 - 若存在
Valid Architectures选项,确保包含x86_64(Xcode新版本可能已移除该选项)
- 将
配置模拟器架构排除规则
在Build Settings中找到Excluded Architectures,针对QA-iphonesimulator配置,添加arm64,避免编译模拟器版本时生成arm64架构的二进制文件。清理缓存并重新构建
删除警告中提到的DerivedData目录,再执行Xcode的Product > Clean Build Folder操作,之后重新构建项目及UITests目标。对齐UITests与主App的构建配置
检查UITests目标的Build Settings,确保架构相关选项与主App目标保持一致,避免UITests单独指定arm64架构导致不兼容。更新Xcode版本(可选)
旧版Xcode处理Apple Silicon模拟器架构时可能存在兼容性问题,尝试更新至较新版本,提升对x86_64和arm64模拟器的支持能力。
内容的提问来源于stack exchange,提问作者Abhishek Bedi

