我正在构建一个需要1.8GB资源的应用。它是一个企业应用程序,将安装在受控环境中。资源需要从一开始就在设备上,因为它将在没有网络覆盖的情况下使用。
资源是专家地图图块,其形式为数百个PNG图像,包含在语义相关的文件夹中。
当直接将这些包含在项目中时,通过文件夹引用(当使用派生路径检索图像时)Xcode会慢慢爬行(由于索引和维护该复杂性的项目),并且在测试设备上的安装需要永远。这可以通过在第一次构建之后移除图像(因此它们仍在设备上)来减轻,但这并不理想。此外,当他们进入项目时,捆绑包大小很大,这会导致部署问题(不仅是下载时间,而且从我们的内部Apperian应用程序商店下载时似乎经常失败,可能是由于纯粹的尺寸)。
我已尝试在没有资源的情况下分发应用,并在首次运行时将其下载(如果需要)作为zip文件。不幸的是,解压缩资源需要不可持续的时间。
如何在Xcode中易于管理的项目,小型分发包和可管理的首次运行体验之间找到最佳位置?我很高兴iPad在应用程序首次安装时可以坐在那里半小时左右,但是不长于此之后就无法工作了。有没有比使用zip文件更好的方法?
答案 0 :(得分:1)
我已尝试在没有资源的情况下分发应用程序,并在首次运行时将其下载(如果需要)作为zip文件。不幸的是,解压缩资源需要不可持续的时间。
PNG文件是高度压缩的,因此您不会通过压缩它们获得真正的好处。你可以用tar球将它们归档,而unarchiving则会快得多。也许,zip还有一个无压缩存档选项。
正交策略可以是,而不是只有一个存档,具有多个存档。然后,您可以按给定顺序下载/取消归档它们,以便在后台进行其余的下载/取消归档时,使应用程序快速运行。这是否可行取决于你的应用程序,最终。由于您说文件夹具有语义,您可以存档文件夹(单独或成组),然后在首次启动时,询问用户他想要开始使用哪个文件夹(如果有意义),并首先下载该文件夹。