fat格式一般通用于32和64位系统设备,运行时会选择一种架构进行执行,相对来说体积偏大。那么如果在只有可执行文件时,如何判断该文件是否为fat格式呢
判断macho文件是否带fat头
将macho文件拖入010editor,Run Template选择MachO.bt模板,即可判断。

编译不带fat头的macho文件
Info → Deployment Target,设置为11.0以上,不管在Build Settings → Build Active Architecture Only 中设置YES或NO,编译出的macho文件都不带fat头。

编译带fat头的文件
1、需要在Info → Deployment Target,设置为11.0以下(不包括11.0);
2、在Build Settings → Build Active Architecture Only 中设置NO;
3、两者都设置了,则编译出的是带fat头的macho文件。

Xcode编译bitcode的程序
Build OptionsEnable Bitcode设置为YES,即可以编译成bitcode的程序

判断是否为Bitcode格式
可以使用macOView工具查看程序,含有__LLVM字段的为bitcode格式。

本文介绍了如何通过010Editor的MachO模板来判断macho文件是否包含fat头,以及在Xcode中设置不同的DeploymentTarget和BuildActiveArchitectureOnly来控制是否生成fat格式的文件。同时,讲解了如何识别Bitcode格式,当文件中含有__LLVM字段时表明是Bitcode格式。编译时启用BuildOptionsEnableBitcode选项可生成Bitcode程序。
3997

被折叠的 条评论
为什么被折叠?



