大型资源应用的推广和管理策略



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

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

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

我尝试在没有资源的情况下分发应用程序,如果需要,让它在第一次运行时以zip文件的形式下载它们。不幸的是,解压缩这些资源需要耗费不可持续的时间。

我如何在Xcode中易于管理的项目,小型发行包和可管理的首次运行体验之间找到最佳点?当应用程序第一次安装时,我很高兴iPad在那里放置半个小时左右,但超过这个时间就行不通了。还有比使用zip文件更好的方法吗?

我尝试在没有资源的情况下分发应用程序,如果需要,让它在第一次运行时以zip文件的形式下载它们。不幸的是,解压缩资源需要大量的时间。

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

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

最新更新