如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章
ipatool无法使用bitcode构建(xcode 7.1.1)
不要在 xcode 7 中使用 opencv 运行应用程序?
如何修复Facebook SDK“不包含bitcode”错误?