Xcode 7中的bitcode_strip错误

11
我的Xcode 7 beta3项目中包含由Xcode 6编译的一些框架,这些框架通过“Build Phase”选项卡中的“Embeded Frameworks”选项导入到我的项目中。因为这些框架不支持Bitcode,所以“Enable Bitcode”选项变成了NO,当编译项目时,出现了Bitcode_strip错误: 错误信息如下: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip /Users/panzhansheng/Desktop/MusicFans_2.0.4_xcode7_autoplay/MusicFans/Frameworks/FLAC.framework/FLAC -r -o /Users/panzhansheng/Library/Developer/Xcode/DerivedData/MusicFans-bxutvotiungdbwfsxloykffnqoqs/Build/Products/Debug-iphoneos/MusicFans.app/FLAC.framework/FLAC /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip: input file must be a linked Mach-O file not an archive: /Users/panzhansheng/Desktop/MusicFans_2.0.4_xcode7_autoplay/MusicFans/Frameworks/FLAC.framework/FLAC (for architecture i386) error: bitcode_strip /Users/panzhansheng/Desktop/MusicFans_2.0.4_xcode7_autoplay/MusicFans/Frameworks/FLAC.framework/FLAC: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/bitcode_strip 已退出,返回值为1。
我发现错误是因为Xcode把我的框架复制到我的应用程序包中并尝试从框架中去掉Bitcode时发生的,但这些框架是由早期版本的Xcode编译的,并且根本没有包括Bitcode。怎么解决?谢谢!
3个回答

19
据我所了解,XCode只有在环境变量STRIP_BITCODE_FROM_COPIED_FILES设置为YES时才使用bitcode-strip。似乎当启用位码(enable_bitcode)时,默认情况下会将其设置为YES。
在您的目标(Target)中添加用户定义的设置STRIP_BITCODE_FROM_COPIED_FILES=NO可以帮助您,这样XCode就不会使用bitcode-strip,但是您的应用程序可能无法使用没有位码部分的框架。如果需要,最好也使用STRIP_BITCODE_FROM_COPIED_FILES=NO重新编译它们。
在XCode 7 beta 5上进行测试。

2
在您的项目构建设置下添加此用户定义设置STRIP_BITCODE_FROM_COPIED_FILES=NO,这将处理您所有的目标。 - Tom Howard

13

继M. Pogosskiy的回答之后,我花了一些时间找到了在哪里设置STRIP_BITCODE_FROM_COPIED_FILES位(对此不太熟悉)。以下是参考示例:

输入图像描述


你清理并进行了完整的重建吗? - kennydust
1
9.1版本的SDK文件夹丢失了。 重新安装或者从9.0复制并重命名至少可以让我的非生产测试性爱好项目编译。 - AirUp

0

这是由于 Mac 系统可用内存/磁盘空间低导致的。当我清理了它后,它便顺畅运行而无需自我清理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接