Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Frameworks xcodebuild 7.3无法启用位代码_Frameworks_Xcodebuild_Fat_Bitcode_Xcode7.3 - Fatal编程技术网

Frameworks xcodebuild 7.3无法启用位代码

Frameworks xcodebuild 7.3无法启用位代码,frameworks,xcodebuild,fat,bitcode,xcode7.3,Frameworks,Xcodebuild,Fat,Bitcode,Xcode7.3,我正在为iOS开发一个强化的框架。为了使用模拟器和设备切片制作通用fat,我使用一个脚本创建了一个聚合目标,该脚本使用xcodebuild和lipo命令生成它,就像许多人所做的那样 对于XCode 7.x,我必须添加一个用户定义的设置,使用BITCODE\u GENERATION\u MODE=BITCODE来启用它,但是自从上一个XCode 7.3发行版以来,它就停止工作了 我已经尝试了我在互联网上找到的所有东西,比如add OTHER\CFLAGS=-fembed比特码,但一切都和以前一样有

我正在为iOS开发一个强化的框架。为了使用模拟器和设备切片制作通用fat,我使用一个脚本创建了一个聚合目标,该脚本使用xcodebuild和lipo命令生成它,就像许多人所做的那样

对于XCode 7.x,我必须添加一个用户定义的设置,使用BITCODE\u GENERATION\u MODE=BITCODE来启用它,但是自从上一个XCode 7.3发行版以来,它就停止工作了

我已经尝试了我在互联网上找到的所有东西,比如add OTHER\CFLAGS=-fembed比特码,但一切都和以前一样有效

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

无论我怎么做,“启用\位代码”始终为“否”


自从XCode 7.3以来,有人尝试过使用xcodebuild命令创建一个启用位码的通用fat框架吗?

我也面临同样的问题。和您一样,位代码生成模式和其他\u CFLAGS=-fembed位代码被简单地忽略了,我的构建中断了

我确实注意到它有时有效,有时无效。似乎,如果您为模拟器构建框架或aggreate目标,那么不管xcodebuild命令中有什么,位代码都会消失

我使用的是Xcode 7.3,我有两个目标:静态库和聚合目标,以生成fat框架

当它构建一个无位代码框架时,对我有效的方法是:

选择静态库目标而不是聚合目标,然后选择通用iOS设备 清洁它 选择静态库目标,但选择模拟器 构建它工作,即使它是即时的,因为它还没有被清理 选择静态库目标,但再次选择通用iOS设备。 建造它 选择通用iOS设备的聚合目标 最后,构建它 如果失败,请重新开始。有时我需要做两三次才能奏效。 当我这样做时,我的胖库最终会有位代码

通过运行otool-arch armv7-l | grep LLVM,您可以轻松地检查您的框架是否具有位代码支持

为了再次打破它,只需为模拟器构建聚合目标。这个库仍然很胖,但比特码已经消失了

肯定有人能找到一个每次都有效的解决方案,但至少它为我解决了这个问题


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

我昨天遇到了类似的问题。经过一些调查,在任何Xcode目标中从运行脚本构建阶段运行Xcode构建时出现的问题似乎与要使用的工具链的明确规范有关,该规范使用ENV变量TOOLCHAINS完成

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

Xcode 7.3位代码生成问题的解决方法 取消设置工具链


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

谢谢您的回答。我为我的项目申请的解决方案和你的一样。我是用XCode手动编译的,不是用脚本,而是设备框架,然后是模拟器,最后用我的脚本只用于将它们与lipo合并。但是,请参阅@jlj的解决方法,您仍然可以使用您的脚本,只添加一行。我们正在apple跟踪此问题,其中有错误25389361,如果您选择提交重复的错误或以其他方式沟通此问题,您可以参考此问题。谢谢你提出这个问题!这在6月13日发布的Xcode 8.0测试版中得到了解决。作为一名苹果工程师,我可以确认这是一个合适的解决方法。感谢@RickBallard的确认@RickBallard发布的v7.3.1有任何更新吗?请给出建议。@HaritK这已在6月13日发布的Xcode 8.0测试版中得到解决。@RickBallard感谢您的回复。虽然我还没有得到xCode 8测试版并尝试。