每次构建前如何清理项目?

10

在Xcode中,是否有一种(可能使用方案)的方法来指定在进行新构建之前自动清理?

我有一个项目,有时只有在进行清除操作后才能构建成功,目前我是手动执行此操作。


不要问我如何,但我非常确定你可以用构建脚本来完成这个任务。 - gcamp
2个回答

27

按下⌥⌘R,展开所选方案,选择“预处理操作”,点击“+”,选择“新建运行脚本操作”,将“从提供构建设置”设置为您的目标。在下面的框中输入rm -rf ${BUILT_PRODUCTS_DIR}。 注意:它是BUILT而不是在Xcode对话框中看到的BUILD。 您可以键入echo ${BUILT_PRODUCTS_DIR} > ~/Desktop/log.txt以查看将要删除的内容。


那比我想象的简单。我本来会使用 xcodebuild 命令行工具,但这同样好用。+1 - gcamp

3
所选答案对我没有用,当我试图在模拟器上运行时,它导致我的构建失败(Xcode 4.6.3)。根据Jano的回答和这个link,我在Pre-action脚本中编写了替代代码,而不是


rm -rf ${BUILT_PRODUCTS_DIR}  

我写了
touch ${BUILT_PRODUCTS_DIR}

这样做应该会有相同的效果,并且不会导致我的构建失败


1
去掉BUILT_PRODUCTS_DIR与触及BUILT_PRODUCTS_DIR相比有什么相同的效果?它们完全是两回事。后者命令根本不会删除或清理任何东西。 - Corey Goldberg
我的意思是,它们两个(rm 和 touch)都有助于解决构建失败的问题,但使用 rm 时,由于 Xcode 抱怨找不到我添加的文件夹,导致我的构建失败。我将其作为答案添加,以防其他遇到相同问题的人像我一样来到这个页面。 - keisar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接