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


79

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

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

有时,它显示此错误:

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

我已打开“新构建系统”。

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


在Xcode 10中-stackoverflow.com/a/52722094/822420它可能会帮助您
ram

Answers:


44

对我而言,关闭Xcode无效。相反,我使用清理了项目CommandShiftK


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

在此处输入图片说明


好了,关闭项目并不能清除它,这就是为什么它不起作用的原因:)
Led

32

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


7
没为我工作。当我尝试本地化info.plist文件时出现此错误。
里卡多·穆蒂

2
也没有与我合作,特别是当我尝试嵌入之前创建的框架时。
阿卜杜勒拉曼·马苏德

3
没用 还尝试使用命令+ alt + shift + k清除构建文件夹。没有反应。
atereshkov

2019年
NSDumb

1
首先清洁(CMD + SHIFT + K),然后进行建筑(CMD + B)对我
Daniel Springer

28

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

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

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

在每篇文章中添加用户定义的构建设置后,Swift便告诉我真正的错误。就我而言,它是一个缺少的},但可能有许多问题。


21

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

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

~/Library/Developer/Xcode/DerivedData

它就像一种魅力。


9
这个答案有效。对于复制和粘贴到终端中,请使用:cd ~/Library/Developer/Xcode/DerivedData && open .
tww0003 18-10-28

1
谢谢,我一直在寻找解决方案的时间,您节省了一天!
ikel

我什至找不到这条路。但是用@ tww0003代码就可以了。
Dpedrinha

@ Dpedrinha是的,因为那是我的本地系统。我已经更新了路径,现在您可以找到它。
克里希纳·梅纳

11

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

  1. 删除Entity+CoreDataClass.swiftEntity+CoreDataProperties.swift
  2. 在实体模型检查器的“类”下,将“模块”更改为,将“代码生成”更改Current Product ModuleManual/None
  3. 重新创建NSManagedObject。

图片


什么是CoreDataClass
IgorGanapolsky

9

我将项目从Swift 4升级到5时遇到了这个错误。我首先将所有Pod更新到了它们的最新版本。当我建造时,一些吊舱显示了此错误。

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

  1. 从移除了所有豆荚 Podfile
  2. 执行pod install以删除所有已安装的Pod
  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,导致其代码中出现许多构建错误。通过打开Pods项目并选择其目标,我将其改回了Swift 4.0。
  15. 再次清洗,重建。

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


如果我们使用迦太基而不是Pod怎么办?
IgorGanapolsky

8

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

  • 显示问题导航器(显示构建时间错误时)
  • 点击错误: 单击问题导航器中的错误
  • 然后,您应该看到有关错误的更多信息: 命令LinkStoryboards失败,退出代码非零


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


7

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



4

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


3

就我而言,我是干净的构建文件夹,然后重新启动我的mac,然后它就可以了。


3

JSONwebtoken安装了吊舱,这引起了问题。我需要删除JSONWebtokenpod文件夹中的CommonCrypto文件夹。这是一个->链接<-说明问题。这开始在Xcode 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 = ""
    }


2

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

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

  1. 因此,如果您的代码中已有任何类/结构名称,例如“ State”,请首先将其更改为“ StateDetail”

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

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

并再次构建代码!!!


2

就我而言,问题是我在情节提要中为视图控制器分配了一个.swift类,而项目是目标C。


2

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

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

没事。我正在使用Xcode 11.0 beta(11M336w)。

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


2

尝试在子模块中运行单元测试时出现此错误。我所做的是:

更改模拟器=>清理项目=>生成项目=>运行单元测试

在此之后,我的单元测试运行没有任何问题。


1

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

SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";

它对我有用


1

好的,我在Xcode 10中遇到了同样的问题。我通常为每个视图使用一个故事板,这样,如果有人在帮助,则可以更容易地折叠代码。我需要将一个故事板上的一个视图作为初始视图Controller。


请进一步说明,我没有完全得到这个答案
Mohsin Khubaib Ahmed

因此,您可以拥有多个情节提要,并且在多视图应用程序中,为了实现模块化,我在每个视图上都使用了情节提要,这样,如果有人在应用程序的另一部分上工作,则可以轻松进行这些更改。在ViewControllers上,有一个选项可以使它成为该情节提要的初始视图控制器,该情节提要在您调用时加载,storyboard.loadInitialView() 并且在一个情节提要中未单击该选项,而当我单击它时,该选项就消失了。
jimistephen



1

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

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


1

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


1

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

filenames are used to distinguish private declarations with the same name


0

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

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

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

$ xcode-select --install


0

对我造成这些错误的原因(我的一些cocoapods获得了8+)修复了所有pod中的任何运行时生成问题。


0

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


这对我有用,有人投票,您不应该仅仅因为它对您不起作用而投票。对于每个有这个问题的人来说,这显然不是一个有效的解决方案(也许应该指出),但是它绝对解决了自从我开始使用SPM以来困扰我几年的问题。
Ben Stahl

重要的是,它仅针对“运行(调试)”构建进行了修复,但“存档”构建仍会出现错误。这是一个很好的步骤,但是设置中的某些地方还是有问题(发生在Xcode 11中使用SPM的多个项目中)。
Ben Stahl

0

我也遇到过类似的问题。我已经做好了

  • 干净的项目-没用
  • 删除派生数据文件夹-不起作用
  • 将构建系统更改为 Legacy Build Settings-无效
  • 重新启动XCode-无效
  • 注释我的一些代码,一个typedef NS_ENUM.h文件,并枚举相关作品。构建系统并显示成功。接下来取消注释代码并再次构建-神奇地工作
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.