Xcode 9.2模拟器无法运行项目,链接器报错求助
解决Xcode 9.2模拟器链接错误及CoreSimulator警告问题
我来帮你搞定这个在Xcode 9.2(搭配MacOS 10.13.2)模拟器上遇到的问题——既碰到了clang: error: linker command failed with exit code 1的链接错误,还有CoreSimulator日志里的Spawning processes in an unbooted state without setting kSimDeviceSpawnStandalone is deprecated警告,而且你已经试过删派生数据、重启Xcode都没用,那咱们试试下面这些针对性的方案:
1. 彻底重置模拟器状态
模拟器的缓存状态有时候会搞出各种奇怪问题,光重启Xcode不够,得彻底清一遍:
- 打开Xcode,点顶部菜单栏的
Window→Devices and Simulators - 切换到
Simulators标签页,选中你用的那个模拟器,右键选Delete,然后点左下角的+重新加个同型号的模拟器 - 关掉Xcode,打开终端跑这行命令清空所有模拟器缓存:
xcrun simctl erase all - 最后重启Mac,再打开Xcode试试运行项目
2. 排查项目的链接配置问题
链接错误exit code1大多和依赖、符号引用有关,你可以这么检查:
- 打开项目的
Build Settings,搜索Other Linker Flags,看看有没有重复或者错误的参数,比如多余的-ObjC或者路径不对的库引用 - 检查
Linked Frameworks and Libraries列表,确认所有依赖的库都加对了,没有红色的缺失项 - 试试把项目的
Build Active Architecture Only在Debug模式下改成YES,有时候架构不匹配也会导致链接失败
3. 修复CoreSimulator的废弃警告
这个警告虽然不一定直接导致链接失败,但会影响模拟器的正常运行,咱们重置下CoreSimulator服务:
- 打开终端执行这两条命令:
killall -9 com.apple.CoreSimulator.CoreSimulatorService rm -rf ~/Library/Developer/CoreSimulator - 重启Xcode,让CoreSimulator重新生成配置文件
4. 验证Xcode安装完整性
要是上面的方法都没用,可能是Xcode的部分组件损坏了:
- 打开App Store看看Xcode有没有更新补丁(虽然你用的是9.2版本,但说不定有修复包)
- 要是没更新,就重新安装Xcode 9.2:先删掉当前的Xcode,去Apple开发者官网下载对应版本的安装包重新装,避开App Store下载的缓存问题
如果这些方法还是解决不了,建议你去Xcode的Report Navigator里找到对应的编译记录,展开Link阶段的详细日志——里面会有具体的符号缺失或者重复定义的提示,能帮你更精准地定位问题。
内容的提问来源于stack exchange,提问作者oakt




