我正在尝试使用Xcode中提供的Info.plist预处理,以便我可以在应用程序的Info.plist中嵌入最新的git commit id。它在Xcode 3中使用此处描述的技术正常工作:http://www.cimgf.com/2011/02/20/revisiting-git-tags-and-building/但是,当我在Xcode 4中尝试它时,看起来在第一次构建后没有执行预处理。
我所看到的:
看起来Xcode正在运行脚本构建步骤,但没有预处理我的Info.plist,它使用的是缓存版本。关于如何解决这个问题的任何想法?
我尝试删除InfoPlist.h作为后期构建步骤,以便它始终是一个新修改的文件,但它没有什么区别。
更新 执行清理,然后再次构建会导致显示正确的值。但是,每次提交时我都不应该清理目标。
答案 0 :(得分:1)
你应该做的第一件事是file a bug report。我认为这是一个错误。
在此之前的解决方法中,您可以尝试编辑方案,选择构建操作,展开其显示三角形,然后添加运行touch
的 Pre -action脚本PLIST文件。这应该暂时解决。
答案 1 :(得分:0)
如果您的脚本位于聚合目标中并作为目标依赖项实现,那么这应该可以在不清除项目的情况下运行:
plist=${PROJECT_DIR}/${PROJECT_NAME}/${PROJECT_NAME}-Info.plist
touch $plist