陈斌彬的技术博客

Stay foolish,stay hungry

增加bitcode支持编译第三方框架

iOS 9开始支持bitcode,能够让用户按需安装设备对应的二进制,从而减少占用手机存储空间。Xcode 7默认开启的bitcode的支持(ENABLE_BITCODE = YES)。但是许多第三方框架并没有及时更新,尤其是大量使用的C语言开源代码。它们一般采用Makefile或者CMake编译,对大多数iOS开发者来说简直就是天书。实际上添加bitcode支持非常简单。

  1. 安装Xcode 7+,并用xcode-select设置为命令行默认的工具链。

    sudo xcode-select -s Xcode 7+的安装路径

  2. 在Makefile中找到CFLAGS,并增加bitcode的支持。下面以mupdf的Makethird为例。

    ZLIB_CFLAGS += -fembed-bitcode 或者 makefile CFLAGS += -fembed-bitcode

CFLAGS只是一个存放编译选项的变量,在不同的Makefile文件中可能名称不一样,可以在Makefile中查找一下,记得写在这个变量赋值之后。这样就给现有的编译选项增加了bitcode支持。

  1. 注意

还有一个符号-fembed-bitcode-maker,这个只是标记生成bitcode在打包的二进制代码中的位置的描述信息,而不像-fembed-bitcode一样真正创建bitcode并打包称静态库。

question-ios-library-to-bitcode

Resource Reference