1

我正在构建一个需要 1.8GB 资源的应用程序。这是一个企业应用程序,将安装在受控环境中。资源需要从一开始就在设备上,因为它将在没有网络覆盖的情况下使用。

这些资源是专业的地图图块,它们以数百个 PNG 图像的形式存在,包含在语义相关的文件夹中。

当通过文件夹引用将这些直接包含在项目中时(因为图像是使用派生路径检索的),Xcode 会变慢(由于索引和维护如此复杂的项目)并且在测试设备上的安装需要很长时间。这可以通过在第一次构建后删除图像来缓解(因此它们仍在设备上),但这并不理想。此外,当他们在项目中时,包大小很大,这会导致部署问题(不仅是下载时间,而且从我们的内部 Apperian 应用商店下载时似乎经常失败,大概是由于庞大的大小) .

我已经尝试过在没有资源的情况下分发应用程序,并在首次运行时以 zip 文件的形式下载它们(如果需要)。不幸的是,解压缩资源需要花费不可持续的时间。

如何在 Xcode 中易于管理的项目、小型分发包和易于管理的首次运行体验之间找到最佳平衡点?首次安装应用程序时,我很高兴 iPad 能在那里坐半小时左右,但再过这个时间就行不通了。有没有比使用 zip 文件存储资源更好的方法?

4

1 回答 1

1

我已经尝试过在没有资源的情况下分发应用程序,并在首次运行时以 zip 文件的形式下载它们(如果需要)。不幸的是,解压缩资源需要花费不可持续的时间。

PNG 文件是高度压缩的,因此压缩它们并没有真正的好处。相反,您可以将它们存档在 tar 球中,并且取消存档会快得多。也许, zip 还有一个归档不压缩选项。

正交策略可以是,而不是只有一个档案,而是有多个档案。然后,您可以按给定顺序下载/取消归档它们,以便在后台完成其余下载/取消归档的同时让应用程序快速运行。这是否可行最终取决于您的应用程序。既然您说文件夹具有语义,您可以存档文件夹(单独或分组),然后在第一次启动时,询问用户他想开始使用哪个文件夹(如果有意义的话),然后先下载那个。

于 2014-07-07T08:13:01.240 回答