Xcode 13.1是否存在每次编译都重新编译所有Swift文件的问题?
Xcode 13.1 全量重编译Swift文件问题说明
这是Xcode 13.1版本的普遍已知问题,大量使用该版本的开发者都遇到了增量编译失效、每次编译全量重编所有Swift文件的情况,Xcode 13.0版本不存在该问题,是13.1版本的编译缓存逻辑漏洞导致的。
问题核心原因
Xcode 13.1默认启用的Swift集成编译驱动的缓存校验逻辑存在缺陷,对包含多模块依赖、自定义编译脚本、动态资源变更的项目,增量变更判定逻辑异常,直接触发全量编译流程。
修复方案
- 优先升级Xcode到13.2及以上正式版本,苹果已在后续版本中官方修复了该编译缓存异常问题
- 若暂时无法升级Xcode版本,可在项目的Build Settings中找到
Other Swift Flags配置项,添加参数-driver-use-file-list,强制编译器使用旧版文件校验逻辑,恢复增量编译能力 - 临时关闭项目中每次编译自动修改Build Number、Info.plist动态参数的脚本配置,这类动态变更会进一步触发Xcode 13.1的缓存判定失效
- 清理Xcode残留缓存:关闭Xcode后执行命令
rm -rf ~/Library/Developer/Xcode/DerivedData,重新打开项目完成首次全量编译后,后续增量编译可恢复正常(部分轻量项目实测有效)
提示:
-driver-use-file-list参数仅针对Xcode 13.1版本生效,升级到已修复问题的Xcode版本后,可移除该参数避免不必要的编译开销。
内容的提问来源于stack exchange,提问作者vonlost
相关产品推荐
相关产品推荐

