如何在 Xcode 7 中启用_BITCODE?

Posted

技术标签:

【中文标题】如何在 Xcode 7 中启用_BITCODE?【英文标题】:How to ENABLE_BITCODE in Xcode 7? 【发布时间】:2015-09-21 04:43:06 【问题描述】:

我正在使用 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 中启用位码?

【问题讨论】:

【参考方案1】:

你有几个选择

Enable Bitcode (ENABLE_BITCODE) Other C Flags(OTHER_CFLAGS)-fembed-bitcode 使用bitcode 创建用户定义设置BITCODE_GENERATION_MODE

[Bitcode]

【讨论】:

【参考方案2】:

如果您正在使用针对 ios 9 更新的第三方框架或库,并且您不想包含位码,那么您应该检查是否提供了没有 bitcode 的框架版本。请参阅 Apple's note 了解何时将其包含在您的 app bundle 中:

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

要在您的项目中禁用/启用bitcode,请按以下步骤操作:

    在项目构建设置中,确保您已启用所有设置都可见。 构建选项位于第 4 部分。为 Enable Bitcode 选项选择是或否。

【讨论】:

如果你有任何 cocopods,你也必须对你的 Pod 目录执行此操作【参考方案3】:

只需在 Build 设置中搜索 bitcode 并将其设置为 false/NO

【讨论】:

【参考方案4】:

现在这似乎是 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 更新其 pod 之前,这是一个折衷方案。

【讨论】:

崩溃 pod install 除了undefined method project' for #<:installer:0x007fb3da9fb128>` 将“项目”更改为“pods_project” 这里也崩溃了。【参考方案5】:

这将是 Parse 必须做的事情,在为您的应用启用位码时,您的捆绑包中的所有应用程序和框架都需要包含位码(请参阅 here)。如您所见,Parse 框架目前还没有使用它,这是可以理解的,因为它仍处于测试阶段,还没有准备好进入黄金时段。

【讨论】:

以上是关于如何在 Xcode 7 中启用_BITCODE?的主要内容,如果未能解决你的问题,请参考以下文章

在 Xcode 项目设置中禁用 BitCode 有啥影响?

ipatool无法使用bitcode构建(xcode 7.1.1)

不要在 xcode 7 中使用 opencv 运行应用程序?

如何修复Facebook SDK“不包含bitcode”错误?

MobileFirst Platform CLI 无法使用 JSON 存储构建 xcode 7.2 项目

Xcode 中BitCode是什么,怎样配置避免导入不支持BitCode的第三方库时工程编译报错?