第31月第15天 -fembed-bitcode

Posted javastart

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第31月第15天 -fembed-bitcode相关的知识,希望对你有一定的参考价值。

1.

确保打包的时候使用的是fembed-bitcode, 而不是fembed-bitcode-maker

fembed-bitcode-maker:只是简单的标记一下在archive出来的二进制中bitcdoe所在的位置。
fembed-bitcode: 真的会生成bitcode指令,并且嵌入到二进制中,这个设置不止要在app中设置,同样你也必须在编译静态链接库的时候使用。而且需要主题的是该参数系统只默认在archive模式下会添加
//需要注意的是bitcode只默认在archive下编译。在debug和release下并不会。

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

 

https://blog.csdn.net/u012198553/article/details/54380856

 

此时可以用命令来检查导出的.a文件所支持的指令集,lipo -info XXX.a 

 

2.

##检测是否打开Bitcode

当打开bitcdoe选项之后,我们可以使用otool工具来检查二进制文件中是否包含bitcode段。

###针对于静态链接库.a文件

otool -arch armv7 -l xxxx.a | grep __bitcode | wc -l



###检查app或者framework中是否包含bitcode

由于app中二进制和framework中二进制文件与.a文件存在差异,因为需要检查的是__LLVM段,当出现该段的时候,则表示支持bitcdoe,否则不支持。

otool -l xxxx | grep __LLVM | wc -l

这里otool有个bug,当你的framework使用过lipo命令,进行拆解和合并之后,需要指定指令集进行检查才可以。

otool -arch armv7 -l xxxx | grep __LLVM | wc -l



https://github.com/yishuiliunian/yishuiliunian.github.io/blob/ee944fcd0cb2b70cf535145e90877a12be455f66/_posts/2015-11-19-bitcode-open.markdown

以上是关于第31月第15天 -fembed-bitcode的主要内容,如果未能解决你的问题,请参考以下文章

第3月第15天 afconvert lame

第15月第29天 ffmpeg AVERROR_EOF

第46月第15天 由于iOS的限制,当应用程序在后台时,无法使用GPU。

第44月第31天 Win32 SDK或MFC下使用printf调试打印功能 from 'const char *' to 'LPCWSTR'

第44月第31天 Win32 SDK或MFC下使用printf调试打印功能 from 'const char *' to 'LPCWSTR'

第12月第25天 ImagePickerSheetController