如何在Xcode 7中启用BITCODE?

63

我正在使用parse.com进行开发,但在升级到Xcode 7时出现了问题。一些Parse框架无法完全工作。

我收到了以下警告:

紧急:所有位码都将被删除,因为'/Users/[MY_USER]/Downloads/parse-starter-project-1/ParseStarterProject/Parse.framework/Parse(PFMutableFileState.o)'没有使用位码构建。 您必须使用启用了位码的方式重新构建它(Xcode设置ENABLE_BITCODE),从供应商获取更新的库或为此目标禁用位码。 注意:将来这将是一个错误。

需要提醒的是,在上一个版本的Xcode 6中一切正常。

如何在Xcode 7中启用Bitcode?

6个回答

136

如果您正在使用为iOS 9更新的第三方框架或库,并且不想包含位码,则应检查是否提供了没有位码的框架版本。请参见Apple's note,了解何时在应用程序包中包含它:

对于iOS应用程序,位码是默认设置,但是可选的。对于watchOS和tvOS应用程序,位码是必需的。如果您提供位码,则应用程序包中的所有应用程序和框架(项目中的所有目标)都需要包含位码。

要在项目中禁用/启用位码,请按照以下步骤操作:

  1. 在项目构建设置中,确保已启用所有设置可见。
  2. 构建选项是第4个部分。选择启用位码选项的Yes或No。

enter image description here

enter image description here


9
如果您使用了Cocoapods,请务必对您的Pod目录执行相同操作。 - Serge Pedroza

4
当启用位码(bitcode)时,所有应用程序和框架在您的包中都需要包含位码,这是Parse需要完成的事情(请参见此处)。正如您所看到的,目前Parse框架尚未使用此功能,这是可以理解的,因为它仍处于测试阶段,尚未准备好投入使用。

3
只需在构建设置中搜索 bitcode 并将其设置为 false/NO 即可。

3

看起来这在 Xcode 7 beta 3 中已经成为一个错误。如果你使用的 Cocoapod 没有启用 ENABLE_BITCODE,你可以通过在 Podfile 底部添加以下内容来完全禁用它:

post_install do |installer|

  installer.pods_project.targets.each do |target|
    installer.pods_project.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end

    target.build_configurations.each do |config|
      config.build_settings['ENABLE_BITCODE'] = 'NO'
    end
  end
end

警告:根据我所了解的情况,您无法在未开启ENABLE_BITCODE情况下提交WatchKit应用程序,因此直到Parse更新他们的pods,这是一个权衡。


在执行pod install命令时,出现了异常undefined method 'project' for #<Pod::Installer:0x007fb3da9fb128>导致崩溃。 - Zorayr
将“project”更改为“pods_project”。 - Misha
这里也崩溃了。 - Mikael

1

你有几个选项

  • 启用位码(ENABLE_BITCODE)
  • 其他C标志(OTHER_CFLAGS)使用-fembed-bitcode
  • 创建用户定义设置BITCODE_GENERATION_MODE,使用bitcode

[位码]


0

从Xcode 14开始,Bitcode将被弃用:https://developer.apple.com/documentation/xcode-release-notes/xcode-14-release-notes

弃用内容 从Xcode 14开始,watchOS和tvOS应用程序不再需要Bitcode,并且App Store不再接受来自Xcode 14的Bitcode提交。

Xcode默认不再构建Bitcode,并在项目明确启用Bitcode时生成警告消息:“使用Bitcode进行构建已弃用。请更新您的项目和/或目标设置以禁用Bitcode。”在未来的Xcode版本中,构建Bitcode的能力将被移除。包含Bitcode的IPA将在提交到App Store之前被剥离Bitcode。过去Bitcode提交的调试符号仍可下载。(86118779)


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