1

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

2 回答 2

1

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

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

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

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

于 2013-09-26T11:06:06.170 回答
0

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

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

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

于 2013-10-02T00:35:59.730 回答