iOS 应用程序的最大大小

Posted

技术标签:

【中文标题】iOS 应用程序的最大大小【英文标题】:Maximum size for iOS app 【发布时间】:2013-10-28 22:25:41 【问题描述】:

我在苹果的开发指南中读到了 ios 应用程序大小的限制,但我不太明白。 它是这样说的:

iOS 应用最大可达到 2 GB,但可执行文件不能超过 60 MB。

可执行文件不是整个应用程序吗?我不明白 2 GB 限制和 60 MB 限制之间的区别。

【问题讨论】:

【参考方案1】:

应用程序的主要部分毫无疑问是可执行文件。可执行文件通常不是很大,因为它只是机器运行的编译代码。在小型、琐碎的应用程序中,这通常只有几千字节 (KB)。在更复杂的应用程序中,它可以达到几兆字节 (MB)。为多种架构编译时,您的应用程序的大小将不可避免地增加(请参阅my question on app size when compiling for 64-bit iOS devices)。

通常(并非总是如此),应用程序的大部分大小由界面文件、图像、视频、声音、资源等组成。换句话说,不,可执行文件是不是整个应用程序

打开任何应用程序(在某种文件查看器中)并查看它的内容,它有四个文件夹:

捆绑包 - 包含可执行文件和资源 文档文件夹 - 也会占用大量空间 缓存和临时目录

许多游戏的大小都非常大,例如 Infinity Blade 的初始下载大小约为 1.2 GB。但是 Infinity Blade 的大小是因为图像/图形的数量,而不是可执行文件。

我认为 Apple 正试图阻止恶意软件和 iOS/设备内存限制。老实说,我认为让可执行文件本身超过 60 MB 是非常困难的。正如我之前所说,应用程序的大部分大小都是由资源组成的。

您可能还想在此处参考iTunes Connect Guide。


iOS 8 更新

iOS 8 中的 app bundle 文件结构和沙盒系统发生了变化(略有变化)。因此,对于 iOS 8.0+,有关 app bundle 结构的某些信息(上图)可能不正确。但是,iOS 仍会计算每个项目的大小并将它们计为您应用的大小。

例如,在 iOS 8 中,您的应用程序文档可能不会存储在您的应用程序包中,但它们仍会计入您的应用程序使用的总存储空间。

【讨论】:

@Abs 没关系,在您的应用程序中拥有大量资源并没有什么问题 - 只要您不超过 2 GB 的限制。请记住,您的可执行文件不包含任何资源 - 它只是机器运行的编译代码。 说“您的可执行文件不包含任何资源”是一种误导。当然,在 C/C++/Objective-C 代码中初始化静态数据是完全正常的。 (例如,您的源代码中的所有字符串文字......)当然,只有在极少数情况下会导致可执行文件超过这个 60 MB 限制。 总的来说,这个答案过于笼统了。 “机器运行的编译代码 - 只有几 KB”对于一些琐碎的 My First iOS App 应用程序可能是正确的,但对于具有大量源代码的严肃应用程序(其中大部分可能是完全独立于平台的“业务逻辑") 将有大量的可执行代码。【参考方案2】:

2015 年 2 月 12 日

通过 iTunes Connect 提交的应用程序包的大小限制已从 2 GB 增加到 4 GB,因此您可以在提交的内容中包含更多媒体,并在安装时提供更完整、更丰富的用户体验。请注意,此更改不会影响 100 MB 的蜂窝网络传输大小限制。

【讨论】:

2017 年 9 月 19 日,Apple 将蜂窝下载大小限制提高到 150MB。见:developer.apple.com/news/?id=09192017b【参考方案3】:

不,您可以在安装后向应用添加数据。例如,该应用程序可以简单地显示数据库中的内容,例如***的转储。您的应用程序可执行文件需要的空间很小,但您可以使用数据库达到 2GB 的限制。

【讨论】:

我不认为你完全正确。许多游戏超过(远远超过)60 MB 标准(例如,Infinity Blade 的初始下载大小约为 1.2 GB)。尽管您下载内容是对的 - 仅在一定程度上有效(仅适用于某些类型的内容)。 @RazorSharp 你是对的,我并不是说你必须将初始下载限制在 60MB 以下,我只是想指出可兴奋和应用程序空间之间的区别作为一个整体。我将编辑我的帖子以使其更清晰,尽管您的答案更清晰。【参考方案4】:

您的 IPA 文件大小不应超过 60 MB。如果超过 60 MB,则需要 Apple 的特别批准。 Apple 认为您的代码的核心逻辑可能不会超过 60 MB,如果您的应用支持多种语言,也可以根据需要通过无线方式下载资源包。

无线(通过蜂窝网络而非 wifi)网络限制为 50 MB。如果您的应用超过 50 MB,您将收到一条警告,提示您需要 wifi 连接才能下载该应用。

IPA 文件的最大大小可以为 2 GB,但由于 OTA 下载,Apple 建议文件大小不超过 50 MB。

https://developer.apple.com/library/mac/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/18_BestPractices/BestPractices.html

【讨论】:

这是错误的。IPA 最高可达 2GB。二进制inside IPA 不能超过 60MB 虽然你添加了一些正确的信息,但第一句中仍然存在不正确的信息。我还没有删除我的反对票。

以上是关于iOS 应用程序的最大大小的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用程序的最大大小是多少?

Node.js + Socket.io 超出最大调用堆栈大小

iOS 的实际大小限制 - “应用程序超过 100mb 下载限制?”

iOS蓝牙BLE读取数据最大大小

WKWebView 最大缓存对象大小

Swift 5 将进一步减小 iOS 应用安装包大小