为iOS 9启用位码可增加3倍的IPA大小,这是应用程序商店的大小吗?

在iOS 9之前,我们的IPA大小大概是6MB。 在通过Xcode 7存档和导出我们的IPA后,我们的IPA增加到大约17MB。 经过进一步的调查,我们发现在导出设置中启用“Bitcode”选项是导致大文件大小跳转的原因。

我的问题是这样的:如果我们启用这个选项,我们的IPA在商店里的大小是17MB吗? 或者苹果公司对这个软件包做了些什么来使它和以前的大小差不多(6MB)。

目前没有关于Bitcode的很多信息,我希望在提交给商店之前得到通知。 6MB和17MB就足够了。

位码是编译程序的中间表示。 启用它将增加开发人员的构build(ipa)大小。

iOS可以在不同的CPU(i386,x86_64,arm,arm64等)上运行,如果你想在任何iOS设置上运行程序,那么程序应该包含每个平台的目标代码。 当你运行一个程序时,OS读取'Table Of Contents'并查找与OS CPU对应的一个slice。 例如,如果您在x86_64上运行操作系统,则操作系统会将x86_64的目标代码加载到内存中并运行该程序。

目前,AppStore上的所有应用程序都包含arm和arm64 CPU的目标代码。 此外,第三方专有库或框架包含i386,x86_64,arm和arm64的目标代码,因此您可以使用它们在设备和/或模拟器上testing应用程序。

位码如何工作? 当您提交应用程序(包括位码)时,苹果公司的BlackBox会为每个支持的平台重新编译并删除任何“无用的”目标代码,所以AppStore为每个CPU提供了应用程序副本。 当最终用户想要安装应用程序 – 她只安装特定处理器的版本,没有任何不用的东西。

Bitcode可以节省高达每个程序50%的磁盘空间。

参考文献: http ://lowlevelbits.org/bitcode-demystified/