iOS9,企业应用程序中的位码

iOS9, bitcode in enterprise app

请确认:

Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store.

来自Bitcode (iOS, watchOS).

App Store编译并link发布应用程序,那么企业应用程序呢?

我喜欢这个 iOS9 功能,因为用户可以将所需的切片下载到设备,以便以最小的文件大小快速更新应用程序。 Bitcode 在 Xcode 7 中默认启用,但对于企业应用程序,我们将应用程序更新上传到我们的企业服务器,我们的客户端用户通过 links 从我们的服务器下载它。此过程中没有应用商店。

启用了 Bitcode 的企业应用程序可以吗?如果是这样,谁将拥有编译 & link 职责?

如果您的应用程序包含位码,即使您不通过 AppStore 分发它也是绝对没问题的,但是应用程序会变得更大 - 它包含带有目标代码 位码的片段每个 CPU 架构(有关此主题的更多详细信息可在此处找到:Bitcode Demystified)。

我建议禁用 bitcode,因为在您的分发模型中没有 AppStore 阶段,没有人可以处理它。

如果您仍然想实现这个目标(较小的应用程序大小),那么您可以自己模拟 App Thinning:构建您的应用程序的几个版本 - 每个 CPU 架构一个,上传到您的服务器并在服务器前面放置一些智能服务,它将检查用户的设备(通过用户代理)并重定向到正确的二进制文件。

我没有尝试过这个选项,但它应该可以,你唯一需要的额外东西 - table/mapping 介于设备版本和 CPU 之间。