构建失败,“命令失败并返回非零退出代码”

时间:2017-10-11 14:18:22

标签: xcode

当我尝试使用Xcode构建我的应用程序时,错误会中断构建过程:

  

命令std::string getpreferredencoding() { std::string strCodePage = boost::locale::util::get_system_locale(); std::locale loc = boost::locale::generator().generate(strCodePage); return std::use_facet<boost::locale::info>(loc).encoding(); } 失败并返回非零退出代码

有时,它会显示此错误:

  

命令CompileStoryboard失败并返回非零退出代码

我已打开新建系统

我该怎么做才能解决这个问题?

42 个答案:

答案 0 :(得分:31)

当编译器处于“重要”状态时停止构建项目时,可能会出现此错误。在这种情况下,再次构建项目并让它正常完成会使此错误消失。

答案 1 :(得分:26)

为我关闭Xcode并没有效果。相反,我使用 Command Shift K 清理了项目。

我还发现了另一个原因:我有一个故事板参考我删除的另一个故事板。快速解决方法是删除它。

enter image description here

答案 2 :(得分:24)

这是Swift 4.2和Xcode 10的一个已知问题。我在这里找到一篇文章为我修复:https://github.com/Yummypets/YPImagePicker/issues/236

简而言之,转到项目的构建设置,然后添加一个名为SWIFT_ENABLE_BATCH_MODE的用户定义设置,并将其值设置为NO。

以前,我尝试过此处建议的每种方法(重建,退出Xcode,清理和重建,清除“派生数据”文件)。他们都没有工作。

一旦我在文章中添加了用户定义的构建设置,Swift就会告诉我真正的错误。就我而言,这是一个缺失的},但可能有许多问题。

答案 3 :(得分:8)

当我在创建NSManagedObject子类之前忘记更改实体属性时,发生了此错误。解决方法:

  1. 删除 *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* *-* {'ABCD': {'categories': ['January', 'March', 'April', 'May', 'June'], 'series': [{'data': [1, 0, 0, 0, 0], 'name': ['Big']}, {'data': [0, 0, 0, 0, 1], 'name': ['Small']}, {'data': [3, 0, 0, 1, 1], 'name': ['Monitoring']}, {'data': [0, 0, 0, 0, 0], 'name': ['Improvement']}]}, 'AVR': {'categories': ['January', 'March', 'April', 'May', 'June'], 'series': [{'data': [0, 0, 0, 0, 0], 'name': ['Big']}, {'data': [0, 0, 0, 0, 0], 'name': ['Small']}, {'data': [1, 0, 0, 0, 0], 'name': ['Monitoring']}, {'data': [0, 0, 0, 0, 0], 'name': ['Improvement']}]}, 'Channel': {'categories': ['January', 'March', 'April', 'May', 'June'], 'series': [{'data': [2, 0, 0, 0, 0], 'name': ['Big']}, {'data': [1, 0, 0, 0, 0], 'name': ['Small']}, {'data': [1, 0, 0, 0, 0], 'name': ['Monitoring']}, {'data': [0, 0, 0, 0, 0], 'name': ['Improvement']}]}, 'Migration': {'categories': ['January', 'March', 'April', 'May', 'June'], 'series': [{'data': [0, 0, 1, 0, 0], 'name': ['Big']}, {'data': [0, 0, 0, 0, 0], 'name': ['Small']}, {'data': [0, 0, 2, 0, 0], 'name': ['Monitoring']}, {'data': [0, 0, 0, 0, 0], 'name': ['Improvement']}]}, 'P&G': {'categories': ['January', 'March', 'April', 'May', 'June'], 'series': [{'data': [0, 0, 0, 0, 0], 'name': ['Big']}, {'data': [0, 0, 0, 1, 0], 'name': ['Small']}, {'data': [0, 0, 0, 1, 1], 'name': ['Monitoring']}, {'data': [0, 0, 0, 0, 0], 'name': ['Improvement']}]}, 'WORLD': {'categories': ['January', 'March', 'April', 'May', 'June'], 'series': [{'data': [0, 0, 0, 0, 0], 'name': ['Big']}, {'data': [1, 0, 0, 0, 0], 'name': ['Small']}, {'data': [0, 2, 0, 0, 0], 'name': ['Monitoring']}, {'data': [0, 0, 0, 1, 0], 'name': ['Improvement']}]}} { "skuId": "100", "skuName": "I-Phone", "Sellers": { "seller": [ { "Supplier": { "SupplierId": 1, "supplierAlias": "X1", "supplierDesc": "X1" }, "price": 10, "offerPrice": 8 }, { "Supplier": { "SupplierId": 2, "supplierAlias": "X2", "supplierDesc": "X2" }, "price": 9, "offerPrice": null } ] } }
  2. 在实体模型检查器的“类”下,将“模块”更改为Entity+CoreDataClass.swift,将“代码生成”更改为Entity+CoreDataProperties.swift
  3. 重新创建NSManagedObject。

image

答案 4 :(得分:8)

我在xcode 10中也遇到了同样的问题,并尝试了所有提供的解决方案,但没有任何效果。

然后我删除了以下文件夹的所有文件和文件夹:

/Users/meenakrishna/Library/Developer/Xcode/DerivedData

它就像一种魅力。

答案 5 :(得分:5)

如果您有多个目标,其中两个或多个目标具有相同名称的文件,请在“文件”检查器中检查这些文件的目标成员资格。当同名文件的多个实例为同一目标设置目标成员身份时,会发生错误。

答案 6 :(得分:3)

我遇到错误Command LinkStoryboards failed with a nonzero exit code,发现我使用的外部故事板引用了一个不存在的故事板。我最近更改了情节提要文件的名称,因此将引用从“旧”名称更改为“新”名称为我解决了该问题。
您可能没有与我完全相同的错误,但是查找该错误的详细说明的一种简便方法是:

  • 显示问题导航器(显示构建时间错误时)
  • 单击错误: Click the error in the issue navigator
  • 然后,您应该看到有关错误的更多信息: Command LinkStoryboards failed with nonzero exit code


我希望这有帮助。拜托,我知道我从一个错误中得到的答案与所询问的问题有所不同,但是我相信此建议应该可以帮助您解决类似的问题!

答案 7 :(得分:2)

命令CompileSwift失败,退出代码非零

当您将代码从Xcode 9迁移到Xcode 10+时,会发生此错误。由于任何类名都与现有的Apple类冲突。例如:状态,事件

  1. 因此,如果您的代码中已有“类”或“结构”,例如“状态”,请先将其更改为“ StateDetail”

  2. 如果在目标中添加了Info.plist,请从其中删除刻度线,这样它就不会复制应用程序包(最新的Xcode10安全原因)。

    • 选择Info.plist文件,然后取消选中右侧身份检查器中的“目标成员身份”下的

然后再次构建代码!

答案 8 :(得分:2)

在我的情况下,问题是我将一个.swift类分配给情节提要中的viewController,而项目是Objective C。

答案 9 :(得分:2)

在我的情况下,这是空资产目录,当我删除它时,一切都很好。

答案 10 :(得分:2)

就我而言,我在类扩展中使用了过于复杂的初始化。它突然破坏了我的身材。

class MyClass { }
extension MyClass {
static var  var1 = "", var2 = "", var3 = "", var4 = "", ...., var20 = ""
}

已解决:

class MyClass { }
    extension MyClass {
    static var var1 = "",
    static var var2 = "",
    static var var3 = ""
    static var var4 = "", ...., 
    static var var20 = ""
    }

答案 11 :(得分:2)

我安装了JSONwebtoken吊舱,这引起了问题。我需要删除JSONWebtoken窗格文件夹中的CommonCrypto文件夹。这是-> link <-解释的问题。这开始在Xcode 10中发生。

答案 12 :(得分:1)

如果您遇到类似新MacOS版本的错误。

xcrun:错误:无效的活动开发人员路径(/ Library / Developer / CommandLineTools),缺少xcrun,位于:/ Library / Developer / CommandLineTools / usr / bin / xcrun

这意味着您需要安装XCode命令行,打开终端并运行以下命令:

$ xcode-select --install

答案 13 :(得分:1)

当您有两个同名的 swift 文件时,也会发生这种情况。例如,两个 ContentView.swift 文件

答案 14 :(得分:1)

就我而言,这是关于拥有一个名为Location的文件的。经过一番挖掘后,我发现这是关于使用相同名称(奇怪)的两个文件。原因我没有,但是,通过删除文件并添加另一个具有不同名称的文件已解决了该问题。

filenames are used to distinguish private declarations with the same name

答案 15 :(得分:1)

我尝试了这里讨论的很多选项。

  • 删除并重新安装Pod
  • 清理构建文件夹
  • 删除派生数据
  • 添加SWIFT_ENABLE_BATCH_MODE并将其值设置为NO
  • 重新启动Xcode并重新编译
  • 重新启动iMac并重新编译
  • 将编译模式设置为增量
  • 更改的构建设置:SWIFT_COMPILATION_MODE =单文件,SWIFT_OPTIMIZATION_LEVEL =“ -O”

没有任何效果。我正在使用Xcode 11.0 beta(11M336w)。

最后,我下载了一个新副本,并替换了以前安装的副本。它是完全相同的版本。做到了。

答案 16 :(得分:1)

切换到旧版构建系统为我解决了该问题

答案 17 :(得分:1)

我将项目从Swift 4升级到5时遇到了此错误。 我首先将所有广告连播更新为最新版本。当我建造时,一些吊舱显示了此错误。

以下步骤为我解决了此问题:

  1. Podfile移除所有吊舱
  2. 执行pod install删除所有已安装的吊舱
  3. 执行pod deintegrate删除对CocoaPods的支持
  4. 从我的项目中删除了Podfile.lock.xcworkspace,所以没有 不再是CocoaPods
  5. 现在我的项目是一个纯Xcode项目
  6. 从常规.xcodeproj文件打开我的项目
  7. 将项目的Swift版本更改为Swift 5
  8. 清理了项目(cmd + shift + K)
  9. 退出的Xcode
  10. 将所有豆荚恢复到我的Podfile
  11. 执行pod install以重新整合CocoaPods并添加我的豆荚
  12. .xcworkspace文件中打开项目
  13. 清洗并重建
  14. 一些仍在使用Swift 4.0的旧Pod  (在我的情况下为SlideMenuControllerSwift)设置为Swift 5.0,导致  许多人在他们的代码中产生错误。我将其改回了Swift 4.0  通过打开Pods项目并选择其目标。
  15. 再次清洁,重建。

现在,我自己的项目代码中只有与我制作的Swift版本的差异有关的错误。我现在的工作是修复它们。

答案 18 :(得分:1)

我遇到了相同的错误重新启动Xcode和重新编译为我解决了这个问题。

答案 19 :(得分:1)

对我来说,问题在于我没有在Podfile上放置use_frameworks!。我只是取消注释该行,请再次在终端上运行pod install。它已修复。

由于该应用程序完全是基于Objective-C制作的,因此受到了评论。由于该应用程序现在使用Swift,因此我必须在Podfile上进行更改

答案 20 :(得分:1)

就我而言,我是干净的构建文件夹,然后重新启动mac即可正常工作。

答案 21 :(得分:1)

从产品菜单中清洁Build文件夹即可完成这项工作,但是每次我更改模拟器类型(iPhone型号)时,它就会一次又一次地看起来像Xcode错误。 我正在使用Xcode-10.1。

答案 22 :(得分:1)

应该使用诸如appicon之类的相关数据来指定目标

答案 23 :(得分:1)

我遇到类似的问题,我的解决方案是在“构建设置”中进行一些更改:

SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";

对我有用

答案 24 :(得分:1)

在我的情况下,它是错误地将文件重命名为其他文件夹(组)中的现有文件,只是将其重命名为原来的名称,然后错误消失了

答案 25 :(得分:0)

对我造成这些错误的原因(我的某些cocoapods获得了8以上的错误)正在解决所有pod中的所有运行时构建问题。

答案 26 :(得分:0)

很简单,您忘记了第二个故事板中的 is Initial view controller 就是这样。

见图片... is Initial view controller

答案 27 :(得分:0)

我遇到了这个错误

Command CompileSwift failed with a nonzero exit code

当尝试使用破坏框架(生产者)构建应用程序(消费者)时

如果您双击此消息,您会看到所有绿色的勾。弄清楚发生了什么

Report Navigator -> <project_name> -> Build 

答案 28 :(得分:0)

对我来说,清理项目( Command + Shift + K )并重新启动xCode对我来说是有效的

答案 29 :(得分:0)

我在不同文件夹中有相同名称的文件,导致此错误。

答案 30 :(得分:0)

我们所做的只是clean the project。仅清理项目有时不起作用。删除构建文件夹后,XCode开始编制索引。让我们将XCode视为人的:D并让它建立索引一段时间。该错误将完全消失。

答案 31 :(得分:0)

对我来说,这与我在构建时删除的约束有关。取消选中Remove at build time可以解决此问题,我怀疑编译器在确定没有它的布局时会遇到问题。

错误代码将提及引起此问题的情节提要。

答案 32 :(得分:0)

如果您使用的是TabbController和情节提要引用,请确保您有该情节提要的起点。

答案 33 :(得分:0)

上下文: 尝试使用最新的Android Studio和XCode 11.3(Mojave上的新安装)构建iOS Flutter应用后,我遇到了类似的问题“ Command CompileStoryboard失败,退出代码非零”。这是我在Windows 10上使用Android Studio构建的现有的flutter android应用。

尝试并失败: Command + Shift + K,Command + B,删除派生数据,SWIFT_ENABLE_BATCH_MODE = NO

解决方案: -打开Finder并导航到项目名称> ios> Runner> Base.Iproj -删除.storyboard文件(主文件和启动文件) -打开终端并运行“ flutter create”。 -打开Xcode并运行

答案 34 :(得分:0)

链接单独的故事板时出现相同的错误。错误“命令CompileSwiftSources失败,退出代码非零。”之所以显示,是因为我只是忘记将要链接的第二个故事板中的视图控制器设置为“初始视图控制器”。

答案 35 :(得分:0)

尝试在子模块中运行单元测试时遇到此错误。我所做的是 更改模拟器 => 清洁项目 => 构建项目 => 运行单元测试。 在此之后,我的单元测试将毫无问题地运行。

答案 36 :(得分:0)

转到您的项目构建设置,然后添加一个名为SWIFT_ENABLE_BATCH_MODE的用户定义设置并将其值设置为NO

答案 37 :(得分:0)

好吧,我在Xcode 10上遇到了同样的问题。我通常为每个视图使用一个故事板,这样一来,如果有人在帮助您更轻松地折叠代码,则需要在一个故事板上创建一个视图作为初始视图。查看控制器。

答案 38 :(得分:0)

由于此问题似乎有数十种可能的解决方案,并且根本原因可能非常模糊,因此我将把情况弄糟。我有一半的Pod因某种CompileSwiftSource失败而失败,但仅在存档时出现。我仍然能够为设备和模拟器进行构建。我尝试了很多(如果不是全部)这里提出的解决方案,但是没有运气。在CompileSwiftSource错误之前,其中一个Pod的错误略有不同,因此我去更新并尝试修复该单个Pod。这是iOS的Cache库,已经有一段时间没有更新了。有一个fork解决了更新到Xcode 10.2的问题,我能够更新到此之后,所有其他问题都由他们自己解决。因此,如果您发现一堆异常情况并从那里开始,请在豆荚中寻找一个离群值。

答案 39 :(得分:0)

我也遇到过类似的问题。我已经完成

  • 干净的项目-没用
  • 删除派生数据文件夹-不起作用
  • 将构建系统更改为Legacy Build Settings-无效
  • 重新启动XCode-无效
  • 注释我的一些代码,.h文件中的typedef NS_ENUM并枚举相关作品。构建系统并显示成功。接下来取消注释代码,然后再次构建-神奇地工作

答案 40 :(得分:0)

对我有用的是为Compilation Mode中的所有配置将Incremental设置为Target's Build Settings。使用Whole module编译模式时出现错误。但是此设置使项目的构建速度变慢。

答案 41 :(得分:-1)

在我的情况下,出现一条消息,如下所示。

  

命令CompileSwiftSources失败,退出代码非零。

我更改了工具链 Xcode-> Toolchain-> Xcode 10.1

这是在我更新到Xcode10.1之后发生的。 我希望它能起作用。

我还附上了link more about manage toolchain