我正在为我的iPhone项目添加资源(许多.pngs和其他),将文件夹拖到它并选择“为任何添加的文件夹创建文件夹引用”,以保留文件夹结构。 它们已正确添加到“复制资源”构建阶段。
问题是,我浪费了很多时间,因为当我创建/删除/更新新资源时,它通常会忽略已更改的文件并坚持使用旧版本。
看起来它只会在更改资源时尝试更新资源,但无法查看更改。 在模拟器中,可以手动更新.app中的文件,但是当在设备上工作时,它会抱怨某些资源的代码符号已经改变了!
我发现强制它更新所有内容的唯一可靠方法是删除构建产品,应用程序和设备应用有时,直到它最终决定忘记旧版本,但是为每次资源更改做这件事都会浪费我一大笔时间(游戏内容经常变化)。
因此,简而言之:我如何强制XCode禁用“版本控制”并且只是废弃所有资源并每次都复制它们?
谢谢!
编辑:我发现删除“build”文件夹中内置的.app文件夹总是强制XCode添加新文件......
当我删除该文件夹时,我仍然不知道它保留旧文件的位置,但这样做更好,因为它只按预期复制新资源。 所以像
这样的简单脚本rm -rf "$CODESIGNING_FOLDER_PATH"
在每次构建时删除文件夹的诀窍......
不幸的是,XCode显然在执行Build Phases选项卡之前运行了代码签名,因此它更新旧目标,脚本删除旧目标,然后崩溃抱怨没有找到代码签名资源。
所以......我必须坚持手动删除文件,还是有办法在代码签名之前运行脚本?
答案 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。
答案 2 :(得分:0)
在更新资源之后以及构建更新的应用程序之前,您可能希望使用“产品”菜单下的“清理”选项(或按住shift和命令并按下K键)。我注意到,当我更新资源或用户定义的构建设置时,这有时帮助了我。