Xcode 14.3构建项目时出现跨模块增量构建警告,如何修复?
修复Xcode 14.3的跨模块增量构建警告
你遇到的警告内容如下:
Will not do cross-module incremental builds, priors saved at TimePoint(seconds: 1682802841, nanoseconds: 0)), but the previous build started at TimePoint(seconds: 1682802841, nanoseconds: 665285000), at '/Volumes/DerivedData-ramdisk/PlayingAround3-bxofrzjmlkadwicxzlwhcctqhimt/Build/Intermediates.noindex/PlayingAroundPagage.build/Debug/Interleaf.build/Objects-normal/arm64/Interleaf-master.priors'
这个警告确实是Xcode 14.3的已知bug,根源是增量构建的时间戳校验逻辑存在纳秒级判断误差:构建生成的.priors先验文件时间戳被截断到秒级,而实际构建启动时间保留了纳秒级精度,导致Xcode误判先验数据的时间在构建时间之后,从而跳过跨模块增量构建。
以下是可行的修复方案:
- 清理构建缓存:在Xcode中按下
Cmd+Shift+K清理当前项目的构建缓存,也可以手动删除警告中指定的.priors文件或整个DerivedData目录 - 临时关闭跨模块增量构建:在项目的Build Settings中搜索
ENABLE_CROSS_MODULE_INCREMENTAL_BUILD,将其值设置为NO,直接跳过触发该警告的校验逻辑 - 升级Xcode版本:苹果在Xcode 14.3.1及后续版本中修复了这个时间戳校验的bug,升级到最新兼容版本即可彻底解决问题
- 检查磁盘时间同步:如果你的DerivedData存储在外接磁盘(比如示例中的ramdisk),确保系统时间与磁盘的时间同步,避免因时间偏移加剧该问题
内容的提问来源于stack exchange,提问作者Fabian
相关产品推荐
相关产品推荐

