我在苹果的开发指南中读到了iOS应用程序大小的限制,但我并不是很理解。
iOS 应用程序最大可以达到 2 GB,但可执行文件不能超过60 MB。
可执行文件不就是整个应用程序吗?我不明白这 2 GB 限制和 60 MB 限制之间的区别。
这个app的主要部分毫无疑问是可执行文件。该可执行文件通常不会很大,因为它只是机器运行的编译代码。在小型、琐碎的应用程序中,它通常只有几千字节(KB)。在更复杂的应用程序中,它可能会增加到几兆字节(MB)。当编译多个架构时,您的应用程序大小将不可避免地增加(请参见我的关于为64位iOS设备编译应用程序大小的问题)。
一般而言(并非总是如此),应用程序的大部分大小由界面文件、图像、视频、声音、资源等组成。换句话说,不,可执行文件并不是整个应用程序。
打开任何一个应用程序(在某种类型的文件查看器中)并查看其内容,它有四个文件夹:
许多游戏都非常大,如Infinity Blade,初始下载大小约为1.2 GB。但是Infinity Blade的大小是由于大量的图像/图形而不是可执行文件。
我认为苹果正在试图防止恶意软件和iOS /设备内存限制。老实说,我认为很难让可执行文件本身超过60 MB。就像我之前说的一样,应用程序大小的大部分由资源组成。
您还可以参考iTunes Connect指南。
iOS 8版本的应用程序包文件结构和沙盒系统发生了变化(轻微)。因此,关于应用程序包结构的一些信息(如上文所述)可能对iOS 8.0+不正确。但是,iOS仍然会计算这些项的大小,并将它们作为您的应用程序的大小进行计数。
例如,在iOS 8中,您应用程序的文件可能不存储在应用程序包内,但它们仍然计入应用程序使用的总存储空间。
2015年2月12日
iTunes Connect提交的应用程序包大小限制已从2GB增加到4GB,因此您可以在提交中包含更多媒体,并在安装后提供更完整、丰富的用户体验。请注意,这一变化不影响100MB的蜂窝网络交付大小限制。
IPA文件大小不应超过60 MB。如果超过60 MB,您需要获得苹果的特别批准。苹果认为您的代码核心逻辑不应超过60 MB,并且资源包也可以根据需要通过空中下载,如果您的应用程序支持多种语言。
空中(通过蜂窝网络而非WiFi)的网络限制为50 MB。如果您的应用程序超过50 MB,则会收到警告,需要使用WiFi连接来下载应用程序。
IPA文件的最大大小可以达到2 GB,但由于OTA下载,苹果建议将文件大小保持在50 MB以下。