xcodebuild clean 删除 BUILD_DIR 中的非目标文件 - Xcode 12.5 中的新功能

问题描述

我有我们的 Xcode 构建系统设置,将所有构建产品放在一对目录中,一个用于调试配置,另一个用于使用构建设置发布

BUILD_DIR = /Library/DevWork/BuildProducts

在共享的 .xconfig 文件中指定。

这在 Xcode 12.4 中运行良好,因为 xcodebuild clean 命令只会删除目标,而将构建产品目录中的所有其他文件保持不变。

Xcode 12.5 的新增功能xcodebuild clean删除构建产品目录的全部内容。有没有办法禁用这种行为?

解决方法

Xcode 12.5 的新功能,xcodebuild clean 删除构建产品目录的全部内容。有没有办法禁用这种行为?

这种行为实际上并不是 Xcode 12.5 的新特性;自 introduced in Xcode 10:

以来,它一直是“新构建系统”的一部分

新的构建系统使用“干净的构建文件夹”行为。不支持旧的“干净”行为。

“旧版”构建系统已被弃用一段时间。我不知道它在 Xcode 12.5 中是否仍然可用,但无论是否可用,是时候迁移到新系统了。

有没有办法禁用这种行为?

没有

如果您真的需要保留旧的构建工件,您可以添加一个构建后脚本,将它们复制到另一个位置。