我需要在启用bitcode的情况下发布框架。我已设置"启用Bitcode"到"是"在项目"构建设置"。在Makefile中,我有这样的命令行:xcodebuild OTHER_CFLAGS="-fembed-bitcode" -target MyFramework -configuration ${CONFIG} -sdk iphoneos
。当我运行makefile时,我收到错误:
clang: error: argument unused during compilation: '-fembed-bitcode-marker'
但当我改变了"启用Bitcode"到"否"在"构建设置"。没有发生错误。并运行命令otool -l build/Debug-output/MyFramework.framework/Libraries/libMyFramework.a | grep __LLVM
,我可以获得segname __LLVM
。
所以问题是:
xcodebuild OTHER_CFLAGS="-fembed-bitcode"
? OTHER_CFLAGS="-fembed-bitcode"
或将-fembed-bitcode
添加到"其他C标志"在"构建设置",对吧?经过一些测试后,我想我得到了答案,如果我错了,请纠正我。如果您的框架不依赖于其他项目,那么当您设置这两个设置时,您将收到上面提到的错误消息。但是如果你的框架依赖于其他项目。例如,你有一个工作区,那里有两个项目,一个项目和一个B项目。一个项目依赖于B.在这种情况下,你应该设置"启用Bitcode"到"是"和-fembed-bitcode
同时。因为当你发布A.framework时,编译器应该知道bbinode在B二进制文件中的位置。所以应该转动"启用Bitcode"在B上标记-fembed-bitcode-marker
。