Xcode 复制资产/资源使iOS测试令人沮丧

Xcode 复制资产/资源使iOS测试令人沮丧,xcode,xcode4,Xcode,Xcode4,我正在开发一个iOS应用程序,其中包含大约100Mb的数据文件,这些文件必须复制到应用程序包中。我这样做是作为一个构建步骤;然而,每次我构建和运行应用程序时都会发生这种情况。因此,如果我构建应用程序来测试编译的代码,然后进行测试,文件会被复制两次 对于具有大数据文件的应用程序,是否有避免此问题的最佳实践,或者如果没有,如何改进 我基本上只有一个“复制媒体文件夹”构建阶段,通过bash运行一些rsync命令。事实上,即使我只是在运行一个已经构建好的应用程序,它也会运行,这真的很烦人,尤其是在真正的

我正在开发一个iOS应用程序,其中包含大约100Mb的数据文件,这些文件必须复制到应用程序包中。我这样做是作为一个构建步骤;然而,每次我构建和运行应用程序时都会发生这种情况。因此,如果我构建应用程序来测试编译的代码,然后进行测试,文件会被复制两次

对于具有大数据文件的应用程序,是否有避免此问题的最佳实践,或者如果没有,如何改进

我基本上只有一个“复制媒体文件夹”构建阶段,通过bash运行一些rsync命令。事实上,即使我只是在运行一个已经构建好的应用程序,它也会运行,这真的很烦人,尤其是在真正的设备上进行测试时

我的实际“复制介质文件夹”构建阶段执行以下操作:

CONTENTS_PATH="${TARGET_BUILD_DIR}/${CONTENTS_FOLDER_PATH}"
echo CONTENTS_PATH: $CONTENTS_PATH 

rsync -rvC ../rundir/assets $CONTENTS_PATH/Ogre3D
rsync -rvC ../rundir/config/ $CONTENTS_PATH/Config
Xcode内置的“复制文件构建阶段”是将文件复制到产品的正常方式。你为什么不使用它

如果需要,可以从“编辑器”->“添加构建阶段”菜单添加其他复制阶段

如果文件都包含在文件夹中,但不应手动添加到Xcode项目中,则可以使用文件夹引用(项目导航器中的蓝色文件夹)

此构建阶段的优点是,它使用Xcode的依赖项跟踪,因此不会复制未更改的文件。

Xcode内置的“复制文件构建阶段”是将文件复制到产品的正常方式。你为什么不使用它

如果需要,可以从“编辑器”->“添加构建阶段”菜单添加其他复制阶段

如果文件都包含在文件夹中,但不应手动添加到Xcode项目中,则可以使用文件夹引用(项目导航器中的蓝色文件夹)


此构建阶段的优点是它使用Xcode的依赖项跟踪,因此不会复制未更改的文件。

我曾经开发过一个包含超过1GB静态数据的应用程序。幸运的是,当使用“Build&Run”时,应用程序包不会从设备中删除,而只是就地提取(当非本地化文件被本地化时,会产生许多令人讨厌的问题,等等,但这是另一个主题)。从应用商店重新安装或使用临时部署会删除/清理应用捆绑包

我滥用了这个“特性”,只构建和运行代码,在后续调试构建中忽略数据,并在发布构建时将其放回


如果这个技巧仍然有效,我不知道,但值得一试。要以更简洁的方式实现这一点,您可以尝试使用相同的设置创建两个目标,使100mb文件仅成为其中一个目标的成员。

我曾经开发过一个包含超过1GB静态数据的应用程序。幸运的是,当使用“Build&Run”时,应用程序包不会从设备中删除,而只是就地提取(当非本地化文件被本地化时,会产生许多令人讨厌的问题,等等,但这是另一个主题)。从应用商店重新安装或使用临时部署会删除/清理应用捆绑包

我滥用了这个“特性”,只构建和运行代码,在后续调试构建中忽略数据,并在发布构建时将其放回


如果这个技巧仍然有效,我不知道,但值得一试。要以更简洁的方式执行此操作,您可以尝试使用相同的设置创建两个目标,使100mb文件仅成为其中一个目标的成员。

每次100mb的数据文件都不同?或者总是相同的数据?它们当然会改变,但很少。偶尔,会替换/删除/添加一大堆二进制资产。更常见的是,可以更新配置文件。但在我构建/运行应用程序的9/10次中,资产都没有变化,这是我想要测试的代码更改。每次100MB的数据文件都不一样?或者总是相同的数据?它们当然会改变,但很少。偶尔,会替换/删除/添加一大堆二进制资产。更常见的是,可以更新配置文件。但9/10次我构建/运行应用程序时,资产都没有变化,这是我想要测试的代码更改。我记不起来了,但我认为这是有原因的。我得检查一下!好的,我添加了我现在使用的实际脚本。你能告诉我一个更好的设置是什么样的吗?这个答案似乎让我走上了一条更好的道路,所以我给了你奖金,尽管我还没有100%解决它。如果你愿意补充你的答案那就太好了。我不记得了,但我想这是有原因的。我得检查一下!好的,我添加了我现在使用的实际脚本。你能告诉我一个更好的设置是什么样的吗?这个答案似乎让我走上了一条更好的道路,所以我给了你奖金,尽管我还没有100%解决它。如果你想补充你的答案那就太好了。