我正在为iOS开发一个嵌入式框架。为了制作通用脂肪(使用模拟器和设备切片),我创建了一个聚合目标,其脚本使用xcodebuild
和lipo
命令来生成它,就像许多人一样。
使用XCode 7.x我必须使用BITCODE_GENERATION_MODE = bitcode添加用户定义的设置才能启用它,但是自上一次XCode 7.3发布以来,这已停止工作。
我已尝试过在互联网上找到的所有内容,例如添加OTHER_CFLAGS="-fembed-bitcode"
,但任何事情都像之前一样......
我在构建日志中看到了这个:
ENABLE_BITCODE始终为NO,无论我做什么。
自从XCode 7.3以来,有没有人尝试使用xcodebuild命令启用bitcode创建通用胖框架?
答案 0 :(得分:17)
xcodebuild
时出现的问题似乎与要使用的工具链的显式规范有关,使用ENV变量{{1 }}
因此,在Apple发布Xcode 7.3的固定版本之前,您可以尝试在脚本的开头添加以下命令:
TOOLCHAINS
这应该是无害的,因为当您从命令行运行xcodebuild时,默认情况下不会设置此env变量,并且此解决方法在我的情况下运行正常。
答案 1 :(得分:0)
我面临同样的问题。就像你一样,BITCODE_GENERATION_MODE
和OTHER_CFLAGS="-fembed-bitcode"
被忽略了,我的构建破坏了
我注意到它有时会起作用,有时却没有。似乎如果你为模拟器构建框架(或聚合目标),无论你在xcodebuild命令中有什么,bitcode都会消失。
我正在使用Xcode 7.3,我有2个目标:Static Library和Aggregate target来构建fat框架。
在构建无bitcode框架时对我有用的是:
当我这样做时,我的胖库最终会有bitcode。
通过运行otool -arch armv7 -l <framework_path> | grep LLVM
为了再次破坏它,只需为模拟器构建聚合目标。图书馆仍然很胖,但是bitcode已经不见了。
有人肯定能找到一个每次都有效的解决方案,但至少它为我解决了这个问题。
我当然不必使用Xcode 7.2,而且我不知道它对于纯CLI构建是如何工作的。