首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcodebuild7.3无法启用bitcode

Xcodebuild7.3无法启用bitcode
EN

Stack Overflow用户
提问于 2016-03-23 17:31:08
回答 2查看 3.1K关注 0票数 13

我正在为iOS开发一个已包含的框架。为了制造一个通用的fat (使用模拟器和设备片),我创建了一个聚合目标,脚本使用xcodebuildlipo命令来生成它,就像很多人一样。

使用XCode 7.x时,我必须使用BITCODE_GENERATION_MODE=bitcode添加用户定义的设置才能启用它,但自上一次XCode 7.3版本发布以来,这种设置已经停止工作。

我尝试过在互联网上找到的所有东西,比如add OTHER_CFLAGS="-fembed-bitcode",但是任何东西都能像以前一样工作.

我在构建日志中看到了这一点:

ENABLE_BITCODE总是不,不管我做什么。

自XCode 7.3以来,是否有人试图创建一个使用xcodebuild命令启用bitcode的通用fat框架?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-03-27 13:54:12

昨天我遇到了一个类似的问题。经过一些调查后,在任何Xcode目标中从“运行脚本”构建阶段运行xcodebuild时出现的问题似乎都与使用ENV变量TOOLCHAINS的工具链的显式规范有关。

因此,在Apple发布固定版本的Xcode 7.3之前,您可以尝试在脚本的开头添加以下命令:

# workaround for bitcode generation problem with Xcode 7.3 unset TOOLCHAINS

这应该是无害的,因为在从命令行运行xcodebuild时,默认情况下不设置这个env变量,在我的情况下,这个解决方案工作得很好。

票数 17
EN

Stack Overflow用户

发布于 2016-03-24 14:27:45

我也面临着同样的问题。就像你一样,BITCODE_GENERATION_MODEOTHER_CFLAGS="-fembed-bitcode"被忽略了,我的构建失败了

我确实注意到它有时起作用,有时不起作用。看起来,如果您为模拟器构建了框架(或聚集目标),那么无论xcodebuild命令中包含什么,bitcode都会消失。

我使用Xcode 7.3,我有两个目标:静态库和聚合目标,以建立fat框架。

当我构建一个没有比特码的框架时,我要做的是:

  • 选择静态库目标(而不是聚合目标),并选择“通用iOS设备”
  • 洗干净
  • 选择静态库目标,但选择一个模拟器
  • 构建它(工作,即使它是即时的,因为它还没有被清洗)
  • 选择静态库目标,但再次选择“泛型iOS设备”。
  • 建造它
  • 为“泛型iOS设备”选择聚合目标
  • 最后,构建它
  • 如果失败了,就重新开始。有时我需要做两三次才能奏效。

当我这么做的时候,我的胖库就有了比特码。

通过运行otool -arch armv7 -l <framework_path> | grep LLVM,您可以轻松地检查框架是否支持bitcode。

为了再次破坏它,只需为模拟器构建聚合目标。这个库还会是个大库,但是bitcode已经消失了。

当然,总有人能找到一种每次都能奏效的解决方案,但至少它能解决这个问题。

我当然不必在Xcode 7.2中这样做,我也不知道纯CLI构建是如何工作的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36184930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档