Xcode 14.0.1升级后Swift构建无法打开依赖文件问题求助
问题详情
编译时随机抛出错误:
unable to open dependencies file (.../GameTrackerMTG-fugrsvwgzcfzrrapewbryumhfcaq/Build/Intermediates.noindex/GameTrackerMTG.build/Debug-iphonesimulator/GameTrackerMTG.build/Objects-normal-asan/arm64/CounterView.d)
报错的.d文件不固定,可能是项目中任意Swift文件对应的依赖文件,修改代码或重启Xcode后报错目标会切换。该问题在升级至Xcode 14.0.1后出现。
已尝试过的无效操作:删除依赖文件夹、更改Build位置、新建项目重建所有文件(包括Core Data模型)、修改项目名称,项目无外部依赖。
可能的解决方法
关闭AddressSanitizer
从报错路径里的asan(AddressSanitizer)标识来看,大概率是该调试工具与Xcode 14.0.1存在兼容性问题。在项目Build Settings中搜索Address Sanitizer,将Debug配置下的开关设为NO,之后用Cmd+Shift+K清理编译文件夹再重新编译。清空Xcode全局编译缓存
除了常规清理,手动删除Xcode的全局缓存目录:rm -rf ~/Library/Developer/Xcode/DerivedData rm -rf ~/Library/Caches/com.apple.dt.Xcode执行完成后重启Xcode再尝试编译。
调整模拟器架构配置
在项目Build Settings中找到Excluded Architectures,在Debug-iphonesimulator配置下添加arm64,确保模拟器编译时只针对x86_64架构(M系列芯片Mac可跳过,但部分场景下依然有效)。临时降级Xcode版本
如果上述方法都无效,暂时降级到Xcode 14.0或13.4.1版本,避开14.0.1的兼容性问题,等苹果推送修复版本后再升级。
内容的提问来源于stack exchange,提问作者Pirita

