我正在尝试使用 Xcode 中可用的 Info.plist 预处理,以便我可以在应用程序的 Info.plist 中嵌入最新的 git commit id。使用此处描述的技术,它在 Xcode 3 中运行良好:http ://www.cimgf.com/2011/02/20/revisiting-git-tags-and-building/但是,当我在 Xcode 4 中尝试它时,它看起来像第一次构建后不执行预处理。
我所看到的:
- 在构建我的目标时从头开始,InfoPlist.h 使用正确的内容创建,目标构建并成功运行,我可以在运行时访问该值。
- 创建一个新的提交以更改 HEAD 提交 ID。
- 再次构建我的目标,InfoPlist.h 更新为具有新的提交 ID,目标构建并成功运行,但是,信息字典中的值是以前的提交 ID。
看起来 Xcode 正在运行脚本构建步骤,但没有预处理我的 Info.plist,它使用的是缓存版本。关于如何解决这个问题的任何想法?
我尝试将 InfoPlist.h 作为后期构建步骤删除,以便它始终是一个新修改的文件,但它没有任何区别。
更新: 执行清理,然后再次构建会导致出现正确的值。但是,我不应该每次提交时都清理我的目标。