为 iOS 9 启用 Bitcode 会使 IPA 大小增加 3 倍,这是 App Store 上的大小吗?

Enabling Bitcode for iOS 9 increases IPA size 3x, is this the size on the app store?

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

我的问题是:如果我们启用这个选项,我们商店中的 IPA 大小会是 17MB 吗?或者 Apple 是否对捆绑包做了一些处理,使其大小与以前大致相同 (6MB)。

目前没有太多关于 Bitcode 的信息,我想在提交到商店之前得到通知。 6MB 和 17MB 的差异足以引起关注。

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

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

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

Bitcode 是如何工作的? 当您提交一个应用程序(包括 Bitcode)时,Apple 的“BlackBox”会为每个支持的平台重新编译它并删除任何“无用”的目标代码,因此 AppStore 为每个 CPU 都有一个应用程序副本。当最终用户想要安装应用程序时 - 她只安装特定处理器的版本,没有任何未使用的东西。

Bitcode 每个程序最多可节省 50% 的磁盘空间 space。

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