在iOS 9之前,我们的IPA大小约为6MB。通过Xcode 7归档和导出我们的IPA后,我们的IPA增加到大约17MB。经过进一步调查,我们发现在导出设置中启用“Bitcode”选项是导致大文件大小跳跃的原因。
我的问题是:如果我们启用此选项,我们的IPA大小是否会在商店中达到17MB?或者Apple是否对捆绑做了一些事情,使其大小与以前大致相同(6MB)。
目前关于Bitcode的信息并不多,我希望在提交到商店之前得到通知。 6MB和17MB足以引起关注。
答案 0 :(得分:15)
Bitcode是编译程序的中间表示。启用它将增加开发人员前端的构建(ipa)大小。
iOS可以在不同的CPU(i386,x86_64,arm,arm64等)上运行,如果你想在任何iOS设置上运行程序,那么程序应该包含每个平台的目标代码。运行程序时,OS会读取“目录”并查找与OS CPU对应的片。例如,如果您在x86_64上运行操作系统,则操作系统会将x86_64的目标代码加载到内存中并运行该程序。
目前,AppStore上的所有应用程序都包含arm和arm64 CPU的目标代码。此外,第三方专有库或框架包含i386,x86_64,arm和arm64的目标代码,因此您可以使用它们在设备和/或模拟器上测试应用程序。
Bitcode如何运作? 当您提交应用程序(包括Bitcode)时,Apple的'BlackBox'会为每个支持的平台重新编译它并删除任何“无用的”对象代码,因此AppStore会为每个CPU提供应用程序的副本。当最终用户想要安装应用程序时 - 她只安装特定处理器的版本,没有任何未使用的东西。
Bitcode可能会为每个程序节省高达50%的磁盘空间。