Xcode构建关于Bitcode的说明
启用/关闭Bitcode Xcode设置路径为 Build Settings -> Build Options -> Enable Bitcode 设置后,改变的是构建过程中环境变量 ENABLE_BITCODE 的值。 需要注意的是,这个设置在不同的构建中表现不一样 平时用于调试、部署的构建,启用Bitcode后,仅进行Bitcode依赖检测,不会生成Bitcode符号到产物中。(项目中即使有非Bitcode库,也不影响调试、部署) 当进行Archive打包时,启用Bitcode后,则要求项目的所有依赖库均启用Bitcode(所有库均要有Bitcode符号) 另外,Xcode构建时也会读取环境变量 HIDE_BITCODE_SYMBOLS,这个变量默认YES。当 HIDE_BITCODE_SYMBOL=NO 且 ENABLE_BITCODE=YES 时,则要求项目的所有依赖库均要有Bitcode符号 强制所有构建启用Bitcode 添加 -fembed-bitcode 编译标识。设置路径为 Build Settings -> Apple Clang - Custom Compiler Flags -> Other C Flags 添加后,无论哪种构建,均会强制启用Bitcode。 而通过 Build Settings -> Build Options -> Enable Bitcode 路径启用Bitcode,本质是添加了编译标识 -fembed-bitcode-marker,区别如下 -fembed-bitcode ,任何类型的Build都会带上Bitcode符号 -fembed-bitcode-marker, 只是在产物中做标记,表示可以支持Bitcode;而在Archive打包时,才会生成Bitcode符号 XcodeBuild构建如何启用BitCode Shell环境中构建SDK(静态库、动态库)的场景,此时没有Archive构建,那么可以设置 BITCODE_GENERATION_MODE=bitcode 解决。 BITCODE_GENERATION_MODE可以是 marker,也可以是 bitcode,默认取 marker 例如: xcodebuild BITCODE_GENERATION_MODE=bitcode ..... 如何查看SDK中是否含有Bitcode符号 可以通过 Mach-O View 工具查看,是否含有 Section (__LLVM ,__bitcode ). ...