Xcode,git和中间构建文件夹

时间:2010-01-31 17:22:27

标签: xcode git

我想要两件事:

  1. 能够在git中更改分支,然后在Xcode中运行或构建而无需重新编译整个项目。

  2. 让git在合并期间忽略中间构建文件,因此它不会要求我解决任何冲突。

  3. 将中间版本文件夹放在项目之外,或使用.gitignore忽略该文件夹,完成#2但不是#1;我改变分支时必须重建整个项目,即使我没有修改任何文件。

3 个答案:

答案 0 :(得分:1)

嗯,你自己已经正确回答了#2,所以你的问题只与#1有关。我真的不明白为什么Xcode需要重新编译 - git在切换分支时不会改变未更改文件的时间戳。

您是否实际实施了#2解决方案,以便整个问题不是由构建目录上的git stomping引起的,该目录应该是.gitignore'd?

答案 1 :(得分:1)

您可以定义两个变量:

  • MY_BRANCH_NAME = branch_foo(适用于每个分支)
  • TARGET_TEMP_DIR = $(CONFIGURATION_TEMP_DIR)/$(TARGET_NAME)$(MY_BRANCH_NAME).build(所有分支都一样)

这样,您的不同分支的构建将被创建并保存在单独的文件夹中,由于分支到分支的配置更改,不需要重新编译所有内容。

您可以在xcconfig文件中执行此操作,或者在构建脚本中自动将MY_BRANCH_NAME定义为xcodebuild参数,等等。

答案 2 :(得分:0)

Xcode将根据相关文件的时间戳来完成所有数据。如果用更新的文件替换文件,那么Xcode应该注意到文件的时间戳比构建产品的时间戳更新并重新编译它。

但是,如果使用更旧版本的源文件进行更改,则无法知道构建文件不正确。它只会看到构建输出仍然比源文件更新,因此不能重新编译它。

简而言之,您无法知道哪些文件已经明确更改,哪些文件肯定没有。你最好做一个完整的清洁+重建以确保;否则,当它不起作用时,你将失去调试时间。