2011-07-20 33 views
6

我添加资源(大量的.png和其他)到我的iPhone项目中拖动文件夹到它并选择“为所有添加的文件夹创建文件夹引用”,以保留文件夹结构。 它们已正确添加到“复制资源”构建阶段。如何强制XCode 4始终更新资源?

问题是,我浪费了很多时间,因为当我创建/删除/更新新资源时,它经常会忽略已更改的文件并坚持使用旧版本。

看起来像它试图只更新资源时,它们被更改,但它无法看到更改。 在模拟器中,可以手动更新.app中的文件,但是在设备上工作时,它会抱怨某些资源的代码已经改变!

我发现强迫它更新所有东西的唯一可靠方法是删除构建产品,应用程序和设备应用程序,直到它最终决定忘记旧版本,但这样做是为了每次资源变化都浪费了我疯狂的时间(游戏内容更改频繁)。

因此,简而言之:我如何强制XCode禁用“版本控制”并且只是取消所有资源并每次都复制它们?

谢谢!

编辑:我发现,删除内置的“构建”文件夹中的文件夹名为.app总是迫使XCode中添加新的文件...

我仍然有它保持了旧文件,当我删除不知道该文件夹,但这是更好的,因为它只按预期复制新资源。 所以像

rm -rf "$CODESIGNING_FOLDER_PATH" 

一个简单的脚本是否在每个版本中删除该文件夹的伎俩......

不幸的是,很明显的XCode运行代码签名前的构建阶段选项卡中的任何执行,所以更新旧的目标,该脚本删除旧的目标,然后崩溃抱怨没有找到代码签名资源。

所以...我必须坚持手动删除文件,或者有没有办法在代码签名之前运行脚本?

回答

0

在更新资源之后以及构建更新的应用程序之前,您可能需要使用产品菜单下的清洁选项(或按住Shift键并按下K键)。我注意到,当我更新资源或用户定义的构建设置时,这帮助了我。

+4

不幸的是,这正是我想要避免的 - 这样做也会删除所有已编译的代码,并强制完成重建... 现在我正在使用Bullet,重建需要很多时间。 我想要的只是清理资源,可能会自动! – Tom89

1

好吧,我终于找到了一个(有点丑)解决这个问题。

在你的项目中,创建两个聚合目标,比如Clean Build and Cleaner。

  • 在清洁剂,添加具有rm -rf "$CODESIGNING_FOLDER_PATH"“运行脚本”阶段,将在build文件夹中清除临时应用。

  • 在Clean Build中,添加第一个Cleaner,然后将您的正常应用程序目标添加到Target Dependencies。

  • 从运行列表中选择清理生成,然后编辑计划并将您的应用目标设置为可执行文件。命中运行,它应该工作:)
5

我也有这样的问题,关于文件没有得到更新时,我建立我的项目(PhoneGap项目,但这应该不重要)。

我所做的,就是将它添加到我的项目的构建阶段:

find "${PROJECT_DIR}/www/." -exec touch -cm {} \; 

,将确保该文件被拿起时的XCode生成项目的更新。当然,您应该根据需要修改命令 - 我的需求是更新构建中的www文件夹,因为我正在使用Visual Studio编辑我的文件,并在虚拟机中运行。

+0

我正在编辑链接文件夹中的着色器,并且此解决方案对我无效。 – Justin