Xcode加载.xcodeproj后立即崩溃,KVO相关异常求助
碰到这种IDE级别的KVO异常确实头疼,尤其是之前项目正常、几周没碰突然出问题的情况,先把你遇到的错误信息明确下来:
未捕获异常(NSInternalInconsistencyException):无法更新键路径"_keyWindow.firstResponder"的观察者,很可能是因为键"_keyWindow"的值已更改但未发送相应的KVO通知。请检查IDEApplication类的KVO合规性。
ProductBuildVersion: 9B55
结合你说的.xcworkspace能打开但无法满足多API集成运行的场景,给你几个按优先级排序的解决方案:
先清理Xcode缓存与Derived Data
这是解决Xcode绝大多数诡异问题的第一招,缓存损坏很容易引发这类IDE内部的KVO异常:- 完全关闭Xcode
- 打开终端,执行命令:
rm -rf ~/Library/Developer/Xcode/DerivedData - 重启Xcode,重新打开项目尝试编译运行
重置Xcode偏好设置
偏好设置文件损坏也可能导致IDE内部的KVO逻辑出错:- 关闭Xcode
- 终端执行:
defaults delete com.apple.dt.Xcode - 重启Xcode后,重新配置必要的偏好(比如Apple ID、编译目标等),再尝试运行项目
检查并重置CocoaPods依赖
既然用到了.xcworkspace,大概率是用了CocoaPods管理依赖,几周没碰可能依赖缓存或配置有问题:- 进入项目根目录,终端执行:
pod deintegrate彻底移除现有CocoaPods集成 - 接着执行:
pod install重新安装依赖 - 虽然你说
.xcworkspace无法满足多API运行,但先确认依赖是否正常,排除依赖引发的IDE异常
- 进入项目根目录,终端执行:
排查项目配置文件变更
可以通过Git对比几周前的项目版本,查看project.pbxproj文件是否有异常改动(比如误删配置、格式损坏):- 如果发现可疑变更,恢复到之前正常的配置版本
- 重新打开项目尝试编译
考虑升级Xcode版本
你当前的Xcode版本是9B55(对应Xcode 9.2),属于比较老旧的版本,这类IDE内部的KVO问题可能在后续版本中已经被修复,如果你的系统支持,尝试升级到对应系统兼容的最新Xcode版本,再测试项目
如果以上方法都没能解决问题,可以尝试创建一个全新的Xcode项目,逐步将现有项目的代码文件、配置、依赖迁移过去,排除项目本身的深层配置损坏问题。
内容的提问来源于stack exchange,提问作者Matt

