iOS 9开始支持bitcode,能够让用户按需安装设备对应的二进制,从而减少占用手机存储空间。Xcode 7默认开启的bitcode的支持(ENABLE_BITCODE = YES)。但是许多第三方框架并没有及时更新,尤其是大量使用的C语言开源代码。它们一般采用Makefile或者CMake编译,对大多数iOS开发者来说简直就是天书。实际上添加bitcode支持非常简单。
安装Xcode 7+,并用
xcode-select
设置为命令行默认的工具链。sudo xcode-select -s Xcode 7+的安装路径
在Makefile中找到CFLAGS,并增加bitcode的支持。下面以mupdf的Makethird为例。
ZLIB_CFLAGS += -fembed-bitcode 或者 makefile CFLAGS += -fembed-bitcode
CFLAGS只是一个存放编译选项的变量,在不同的Makefile文件中可能名称不一样,可以在Makefile中查找一下,记得写在这个变量赋值之后。这样就给现有的编译选项增加了bitcode支持。
- 注意
还有一个符号-fembed-bitcode-maker,这个只是标记生成bitcode在打包的二进制代码中的位置的描述信息,而不像-fembed-bitcode一样真正创建bitcode并打包称静态库。
question-ios-library-to-bitcode