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