You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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,点顶部菜单栏的WindowDevices 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

火山引擎 最新活动