制作静态库并支持bitcode

来源:互联网 发布:南京睿悦怎么样 知乎 编辑:程序博客网 时间:2024/06/06 09:38

iOS制作静态库可以参考这篇文章:http://www.cocoachina.com/ios/20150226/11182.html

主要想写的是怎么让自己写的静态库支持Bitcode,那什么是Bitcode呢,可以参考:http://www.jianshu.com/p/3e1b4e2d06c6

需要注意的是bitcode只默认在archive下编译。在debug和release下并不会。
如果您开发的是app那么走正常的打包archive流程就好了。如果你正在开发.a静态库或者framework,请注意打包方式设置为archive,或者在打包脚本中加入-fembed-bitcode参数。如果需要的话,需要在Build Settings中打开 DEPLOYMENT_POSTPROCESSING=YES,设置为debugging。




然后-fembed-bitcode参数(fembed-bitcode-maker:只是简单的标记一下在archive出来的二进制中bitcdoe所在的位置,fembed-bitcode: 真的会生成bitcode指令,并且嵌入到二进制中,这个设置不止要在app中设置,同样你也必须在编译静态链接库的时候使用)


然后编译。

当打开bitcdoe选项之后,我们可以使用otool工具来检查二进制文件中是否包含bitcode段。
针对于静态链接库.a文件  (armv7 i386 x86_64 arm64)
otool -arch armv7 -l xxxx.a | grep __bitcode | wc -l  或者otool -arch i386 -l xxxx.a | grep __bitcode | wc -l ,otool -arch x86_64 -l xxxx.a | grep __bitcode | wc -l,otool -arch arm64 -l xxxx.a | grep __bitcode | wc -l  (注意空格)
如果当前库支持Bitcode .a文件就会输出一个数字



0 0