如何强制XCode 4始终更新资源?

时间:2011-07-20 18:48:23

标签: ios xcode4

我正在为我的iPhone项目添加资源(许多.pngs和其他),将文件夹拖到它并选择“为任何添加的文件夹创建文件夹引用”,以保留文件夹结构。 它们已正确添加到“复制资源”构建阶段。

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

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

我发现强制它更新所有内容的唯一可靠方法是删除构建产品,应用程序和设备应用有时,直到它最终决定忘记旧版本,但是为每次资源更改做这件事都会浪费我一大笔时间(游戏内容经常变化)。

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

谢谢!

编辑:我发现删除“build”文件夹中内置的.app文件夹总是强制XCode添加新文件......

当我删除该文件夹时,我仍然不知道它保留旧文件的位置,但这样做更好,因为它只按预期复制新资源。 所以像

这样的简单脚本
rm -rf "$CODESIGNING_FOLDER_PATH"

在每次构建时删除文件夹的诀窍......

不幸的是,XCode显然在执行Build Phases选项卡之前运行了代码签名,因此它更新旧目标,脚本删除旧目标,然后崩溃抱怨没有找到代码签名资源。

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

3 个答案:

答案 0 :(得分:5)

我也有这样的问题,关于在我构建项目时没有更新的文件(一个PhoneGap项目,但这不重要)。

我做了什么,将其添加到我项目的构建阶段:

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

这将确保在XCode构建项目时更新文件。当然,您应该根据需要修改命令 - 我需要在构建时更新www文件夹,因为我正在使用Visual Studio编辑我的文件,在VM中运行。

答案 1 :(得分:1)

好的,我终于找到了一个(有点难看)的解决方法。

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

  • 在Cleaner中,添加一个带有rm -rf "$CODESIGNING_FOLDER_PATH"的“运行脚本”阶段,该阶段将从构建文件夹中清除临时应用程序。

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

  • 从运行列表中选择Clean Build,然后选择Edit Scheme并将您的应用目标设置为可执行文件。命中运行,它应该工作:)

答案 2 :(得分:0)

在更新资源之后以及构建更新的应用程序之前,您可能希望使用“产品”菜单下的“清理”选项(或按住shift和命令并按下K键)。我注意到,当我更新资源或用户定义的构建设置时,这有时帮助了我。