BITCODE_ENABLE 和 dylib 框架之间的确切联系是什么?

What is exact connection between BITCODE_ENABLE and dylib framework?

我看过很多参考文献 来找出 BITCODE_ENABLE.dylib 框架之间的联系,但我得不到肯定的结果。请任何人帮助我两者之间的确切联系是什么,并清楚地提及 BITCODE_ENABLE 的使用。

我认为您混淆了 Bitcode 的实际含义。 Bitcode既可以与静态框架一起使用,也可以与动态库一起使用。

来自Apple docs

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. Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.

大多数库和框架都是 "fat,",这意味着它们包含额外的二进制文件以支持所有架构。这意味着 iOS 框架可能支持 armv7、armv7s 和 i386(所有设备架构和模拟器)。

用bitcode建库可以支持App Thinning。这意味着只有适用于应用程序 运行 架构的二进制文件才能从 App Store 下载。此外,正如 Crazyrems 在评论中提到的那样,这将优化应用程序安装和下载大小,因为设备只会将应用程序所需的资产下载到特定 architecture/device.

上的 运行

我不会详细介绍 LLVM IR,但我建议阅读这些文章以供参考: