Xcode4 在Xcode 4中预处理Info.plist

Xcode4 在Xcode 4中预处理Info.plist,xcode4,info.plist,Xcode4,Info.plist,我正在尝试使用Xcode中提供的Info.plist预处理,这样我就可以在应用程序的Info.plist中嵌入最新的git提交id。使用这里描述的技术,它在Xcode 3中工作得很好:但是,当我在Xcode 4中尝试它时,第一次构建之后似乎没有执行预处理 我看到: 在构建我的目标时从头开始,InfoPlist.h使用正确的内容创建,目标构建和运行成功,我可以在运行时访问该值 创建一个新的提交以更改头提交id 再次生成我的目标,InfoPlist.h更新为具有新的提交id,目标生成并成功运行,但

我正在尝试使用Xcode中提供的Info.plist预处理,这样我就可以在应用程序的Info.plist中嵌入最新的git提交id。使用这里描述的技术,它在Xcode 3中工作得很好:但是,当我在Xcode 4中尝试它时,第一次构建之后似乎没有执行预处理

我看到:

  • 在构建我的目标时从头开始,InfoPlist.h使用正确的内容创建,目标构建和运行成功,我可以在运行时访问该值
  • 创建一个新的提交以更改头提交id
  • 再次生成我的目标,InfoPlist.h更新为具有新的提交id,目标生成并成功运行,但是,信息字典中的值是以前的提交id
看起来Xcode正在运行脚本构建步骤,但没有预处理my Info.plist,它使用的是缓存版本。有没有关于如何解决这个问题的想法

我尝试将InfoPlist.h作为构建后的一个步骤删除,以便它始终是一个新修改的文件,但这并没有产生任何影响

更新:
执行清理,然后再次构建会导致显示正确的值。但是,我不应该每次提交时都清除目标。

您应该做的第一件事是。我认为这是一个错误


在此之前,您可以尝试编辑方案,选择构建操作,扩展其公开三角形,然后添加一个针对PLIST文件运行的
touch
操作脚本。现在应该可以解决这个问题。

如果您的脚本位于聚合目标中,并作为目标依赖项实现,那么在不清理项目的情况下,它应该可以工作:

plist=${PROJECT_DIR}/${PROJECT_NAME}/${PROJECT_NAME}-Info.plist

touch $plist

我要打开一只虫子。不幸的是,
touch
ing文件没有帮助。依赖项目标的脚本阶段已经修改了该文件。那么,这肯定是一个非常严重的错误:-(这将影响我自己的东西的几个即将发布的版本,因此感谢您将其公之于众。我仍然在XCode 4.5.2中看到这种行为。您是否找到过比每次清理更好的修复方法或解决方法?