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

时间:2013-09-20 07:40:01

标签: xcode xcode4

我正在开发一个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

2 个答案:

答案 0 :(得分:1)

Xcode内置的“复制文件构建阶段”是将文件复制到产品的常规方法。你有没有理由不使用它?

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

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

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

答案 1 :(得分:0)

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

我滥用这个“功能”只是为了构建和运行代码,在后续的调试版本中省略数据,并在进行发布版本时将其重新放入。

如果这个技巧仍然可行,我不知道,但值得一试。要以更干净的方式执行此操作,您可以尝试使用相同的设置制作2个目标,使100mb文件成员只有其中一个。

相关问题