我正在为iOS开发一个已包含的框架。为了制造一个通用的fat (使用模拟器和设备片),我创建了一个聚合目标,脚本使用xcodebuild和lipo命令来生成它,就像很多人一样。
使用XCode 7.x时,我必须使用BITCODE_GENERATION_MODE=bitcode添加用户定义的设置才能启用它,但自上一次XCode 7.3版本发布以来,这种设置已经停止工作。
我尝试过在互联网上找到的所有东西,比如add OTHER_CFLAGS="-fembed-bitcode",但是任何东西都能像以前一样工作.
我在构建日志中看到了这一点:

ENABLE_BITCODE总是不,不管我做什么。
自XCode 7.3以来,是否有人试图创建一个使用xcodebuild命令启用bitcode的通用fat框架?
发布于 2016-03-27 13:54:12
昨天我遇到了一个类似的问题。经过一些调查后,在任何Xcode目标中从“运行脚本”构建阶段运行xcodebuild时出现的问题似乎都与使用ENV变量TOOLCHAINS的工具链的显式规范有关。
因此,在Apple发布固定版本的Xcode 7.3之前,您可以尝试在脚本的开头添加以下命令:
# workaround for bitcode generation problem with Xcode 7.3 unset TOOLCHAINS
这应该是无害的,因为在从命令行运行xcodebuild时,默认情况下不设置这个env变量,在我的情况下,这个解决方案工作得很好。
发布于 2016-03-24 14:27:45
我也面临着同样的问题。就像你一样,BITCODE_GENERATION_MODE和OTHER_CFLAGS="-fembed-bitcode"被忽略了,我的构建失败了
我确实注意到它有时起作用,有时不起作用。看起来,如果您为模拟器构建了框架(或聚集目标),那么无论xcodebuild命令中包含什么,bitcode都会消失。
我使用Xcode 7.3,我有两个目标:静态库和聚合目标,以建立fat框架。
当我构建一个没有比特码的框架时,我要做的是:
当我这么做的时候,我的胖库就有了比特码。
通过运行otool -arch armv7 -l <framework_path> | grep LLVM,您可以轻松地检查框架是否支持bitcode。
为了再次破坏它,只需为模拟器构建聚合目标。这个库还会是个大库,但是bitcode已经消失了。
当然,总有人能找到一种每次都能奏效的解决方案,但至少它能解决这个问题。
我当然不必在Xcode 7.2中这样做,我也不知道纯CLI构建是如何工作的。
https://stackoverflow.com/questions/36184930
复制相似问题