【问题标题】:How to ENABLE_BITCODE in Xcode 7?如何在 Xcode 7 中启用_BITCODE?
【发布时间】: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 中启用位码?

【问题讨论】:

    标签: ios objective-c xcode parse-platform frameworks


    【解决方案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,请按以下步骤操作:

      1. 在项目构建设置中,确保您已启用所有设置都可见。
      2. 构建选项位于第 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 框架目前还没有使用它,这是可以理解的,因为它仍处于测试阶段,还没有准备好进入黄金时段。

        【讨论】:

          猜你喜欢
          • 2013-09-16
          • 1970-01-01
          • 2011-07-20
          • 1970-01-01
          • 2011-11-11
          • 1970-01-01
          • 2015-10-11
          • 1970-01-01
          相关资源
          最近更新 更多