在iOS 6.0之前的版本不支持-fembed-bitcode。

59

最近我下载了Xcode 7 beta,遇到如下错误:

-fembed-bitcode在iOS 6.0以前的版本中不受支持。

是否有解决方法可以在不改变部署目标的情况下修复此问题?

提前致谢。


我建议你考虑移除对 iOS 5 的支持。现在大多数的库都将使用 bitcode 进行构建。禁用 bitcode 将意味着你无法支持 Watch OS。 - Gautam Jain
@Gautam:Watch OS需要为其构建的独立库。这意味着需要一个单独的构建目标,因此没有必要为了Watch OS而在iOS目标中启用位码。然而,在构建iOS应用时,当然还有其他原因需要保持位码的启用。 - Kaiserludi
2个回答

115

最近发现了这个内容,似乎暗示您需要为每个框架启用位码。

"Xcode 7 提供ENABLE_BITCODE选项,以将位码嵌入应用程序、应用扩展和框架中。该选项在iOS上默认开启,并且对于提交到商店的watchOS项目是强制性的。当为目标启用位码时,在连接该目标时使用的所有对象、静态库和用户框架都必须包含位码。否则,链接器将发布错误或警告。(注意:在即将发布的Xcode 7 beta版本中,缺少位码目前仅会有警告,但将成为错误。)ENABLE_BITCODE 应始终针对所有目标保持一致。如果您使用由第三方提供的库或框架,请与供应商联系,以获取包含位码的更新版本。" 天啊,我们需要等待所有库更新吗?:S

来源 (链接)

如果您不打算支持Apple Watch,则可以通过在项目和目标中搜索BITCODE来关闭该选项。将选项更改为No。

bitcode


谢谢您的回复,有没有关闭它的选项? - Kiran
2
@Kiran,是的,只需在“启用位码”行中单击项目目标下方,并选择“否”。 - Danoli3
我喜欢在我需要的时候准确地找到我所需要的答案。谢谢。 - Donovan

2
我试图在一个iOS 9.1设备上运行AudioModem代码(设置目标为iOS 5.1)。对我来说,仅仅将应用的部署目标更改为9.0就可以了(不可思议!),而且没有引入其他错误。

2
OP明确要求在不更改部署目标的情况下提供解决方案。 - lupz

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