Xcode 7 bitcode_strip 错误

Xcode 7 bitcode_strip error

我的 Xcode 7 beta3 项目包括一些由 Xcode 6 编译的框架,这些框架是通过 "Build Phase" 选项卡中的嵌入式框架选项导入到我的项目中的。因为这些框架不支持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 exited with 1

我发现错误发生在Xcode将我的框架复制到我的应用程序包并尝试从框架中剥离bitcode时,但是这些框架是由Xcode早期版本编译的并且不包括根本没有位码。如何解决这个问题?谢谢!

据我所知,XCode 仅在环境变量 STRIP_BITCODE_FROM_COPIED_FILES 设置为 YES 时才使用 bitcode-strip。当enable_bitcode开启时,它似乎默认设置为YES。

将用户定义的设置 STRIP_BITCODE_FROM_COPIED_FILES=NO 添加到您的 Target 可以帮助您,XCode 不会使用 bitcode-strip,但是您的应用程序将使用没有 bitcode 部分的框架可能无法运行.因此,最好在必要时也使用 STRIP_BITCODE_FROM_COPIED_FILES=NO 重新编译它们。

在 XCode 7 beta 5

上测试

根据 M. Pogosskiy 的回答,我花了一段时间才找到 STRIP_BITCODE_FROM_COPIED_FILES 位设置的位置(不太熟悉这些)。作为参考,这里有一个插图:

这是由于 Mac 系统中可用的内存/磁盘 space 不足。当我清除它时。它运行平稳,无需自行清洁。