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

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

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

Sometimes, it shows this error instead:

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

我打开了 新建系统

What can I do to fix this?

244490 次浏览

当编译器正在处理“重要”事项时,停止生成项目时,可能会出现此错误。在这种情况下,重建这个项目并让它结束通常会使这个错误消失。

关闭 Xcode 对我没有影响,相反,我使用 CommandShiftK清理了项目。


我还发现了另一个原因: 我有一个故事板参考另一个故事板,我已经删除了。快速修复就是删除这个。

enter image description here

If you have multiple targets, where two or more targets have files with the same name, check the target membership of those files in Files inspector. The error occurs when multiple instances of the equally named file have set the target membership for the same target.

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

  1. delete Entity+CoreDataClass.swift and Entity+CoreDataProperties.swift.
  2. 在实体模型检查器的“类”下,将“模块”改为 Current Product Module,将“代码”改为 Manual/None
  3. recreate the NSManagedObject.

image

我安装了 JSONwebtoken分离舱,这引起了一些问题。我需要删除在 JSONWebtoken豆荚文件夹中的 CommonCrypto 文件夹。下面是 a-> 链接 <-解释这个问题。这种情况从 Xcode 开始。

对我有帮助的是将 Target's Build Settings中所有配置的 Compilation Mode设置为 Incremental。在 Whole module编译模式下,我得到了错误。但是这种设置使得项目构建更慢。

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

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

~/Library/Developer/Xcode/DerivedData

而且非常有效。

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

简而言之,转到您的项目生成设置,并添加一个名为 SWIFT _ ENABLE _ BATCH _ MODE 的用户定义设置,并将其值设置为 NO。

以前,我尝试了这里建议的每种方法(重新构建、退出 Xcode、清理和重新构建、清除派生数据文件)。都没用。

一旦我为每篇文章添加了用户定义构建设置,Swift 就会告诉我真正的错误。对我来说,这是一个缺失} ,但它可能是任何数量的问题。

我有这样的问题,我的解决方案是在构建设置中修改一些东西:

SWIFT_COMPILATION_MODE = singlefile;
SWIFT_OPTIMIZATION_LEVEL = "-O";

对我有用

好吧,我在 Xcode 10上遇到了同样的问题。我通常对每个视图都使用故事板,这样如果有人在帮忙,就更容易折叠代码。我需要将一个故事板上的一个视图设置为初始视图 Controller。

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

Error: 无效的活动开发者路径(/Library/Developer/CommandLineTools) ,在/Library/Developer/CommandLineTools/usr/bin/xcrun 缺少 xcrun

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

$ xcode-select --install

在我的情况下,我是干净的构建文件夹,然后重新启动我的 Mac,然后它的工作。

In my case, I used too complicated initializations inside a class extension. It suddenly broke my build.

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 = ""
}

在我的例子中,它错误地将一个文件重命名为另一个文件夹(Group)中的一个现有文件,只需将其重命名为原来的文件,然后错误就消失了

对我来说,造成这些错误的原因(我的一些 cocoapods 得到了8 +)是修复了所有 pods 中的任何运行时构建问题。

目标应该用相关数据指定,比如应用程序

Go to your projects build settings, and add a user defined setting named SWIFT_ENABLE_BATCH_MODE and set its value to NO.

我有一个错误 Command LinkStoryboards failed with a nonzero exit code,并且发现我正在使用一个不存在的故事板的引用。我最近更改了故事板文件的名称,因此将引用从“旧”名称更改为“新”名称解决了这个问题。
You may not have exactly the same error as me, but an easy way to find a more detailed explanation of the error is to:

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


希望这个能帮上忙。请,我意识到我的回答从经验的一个不同的错误比这个问题被问到,但我相信这个建议应该帮助你克服类似的问题!

在我的例子中,一条消息显示如下。

命令 CompileSwiftSource 由于非零退出代码而失败。

I changed toolchain Xcode-> Toolchain-> Xcode 10.1

这是在我更新到 Xcode10.1之后发生的。 我希望能成功。

我还附上了 更多关于管理工具链的链接

在我的情况下,它是空的资产目录,当我删除它的时候,一切又恢复正常了。

命令 CompileSwift 由于非零退出代码而失败

将代码从 Xcode 9迁移到 Xcode 10 + 时发生此错误。由于任何类的名称都与现有的苹果类有冲突。例如: 国家,事件等。

  1. 因此,首先将类/结构名称(如果类/结构名称在代码中存在的话)比如“ State”更改为“ StateDetails”

  2. 如果在 target 中添加了 Info.plist,则 除去刻度标记将不会复制 app bundle (Latest Xcode10安全原因)。

    • 选择 Info.plist file 并在 “目标成员”在右侧身份检查下取消选中

然后再次构建代码! ! !

I have faced similar problem. I have done

  • 干净的项目-没有工作
  • Remove Derived Data Folder - didn't work
  • 将构建系统更改为 Legacy Build Settings-不起作用
  • 重启 XCode-不起作用
  • 注释我的一些代码,在。H 文件和枚举相关工作。建立系统并显示成功。接下来取消注释代码并重新构建-魔术般地工作

由于这个问题看起来有几十个可能的解决方案,而且根本原因可能非常模糊,我将把我的情况扔到擂台上。我有一半的休眠舱都因为某种 CompileSwiftSource故障而失败了,但这只是存档的问题。我仍然能够建立设备和模拟器只是罚款。我尝试了很多(如果不是全部的话)在这里建议的解决方案,但没有运气。其中一个吊舱在 CompileSwiftSource错误之前有一个稍微不同的错误,所以我去更新并试图修复那个单独的吊舱。这是 iOS 的 Cache库,已经有一段时间没有更新了。有一个分支解决了我能够更新到 Xcode 10.2的问题,在那之后,所有其他问题都自行解决了。因此,如果你的培养皿中有一些异常值出现错误,那么就从这里开始寻找异常值。

For me the problem was that on my Podfile I didn't put use_frameworks!. I just uncomment that line, run pod install on the terminal again. And it got fixed.

这是评论,因为应用程序完全是在 Objective-C 上制作的。由于应用程序现在使用 Swift,我不得不在 Podfile 上做出改变

I had the same error Restarting Xcode and Recompiling Fixed the issue for me.

当我将我的项目从 Swift 4升级到5时,我遇到了这个错误。 我首先将所有的 pods 升级到最新版本,当我构建时,一些 pods 显示了这个错误。

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

  1. Podfile移除了所有的豆荚
  2. 执行 pod install删除所有已安装的吊舱
  3. 执行 pod deintegrate以删除对 CocoaPods 的支持
  4. 删除 Podfile.lock.xcworkspace从我的项目,所以没有 CocoaPods anymore
  5. 现在我的项目是一个纯 Xcode 项目
  6. Opened my project from the regular .xcodeproj file
  7. 将我的项目的 Swift 版本更改为 Swift 5
  8. 清理项目(cmd + shift + K)
  9. 退出 Xcode
  10. 恢复所有的豆荚到我的 Podfile
  11. 执行 pod install重新整合 CocoaPods 并添加我的 Pods
  12. .xcworkspace文件打开项目
  13. Cleaned and rebuilt
  14. 一些还在使用 Swift 4.0的老豆荚 (SlideMenuControllerSwift)被设置为 Swift 5.0,导致 他们的代码中有很多构建错误。我把它纠正回 Swift 4.0 by opening the Pods project and selecting its target.
  15. 再次清理,重建。

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

切换到遗留构建系统为我解决了这个问题

在我的例子中,问题是我分配了一个。在故事板中快速类到 viewController,而项目是 Objective C。

我在试图在子模块中运行单元测试时出现了这个错误,我所做的是:

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

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

我在链接不同的故事板时也出现了同样的错误。“ CommandCompileSwiftSource 失败,退出代码非零”错误显示,因为我只是忘记设置视图控制器内的第二个故事板,我链接作为’初始视图控制器’。

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

  • 删除并重新安装吊舱
  • 清除生成文件夹
  • Delete Derived Data
  • 添加 SWIFT _ ENABLE _ BATCH _ MODE 并将其值设置为 NO
  • 重新启动 Xcode 并重新编译
  • 重新启动 iMac 并重新编译
  • 将编译模式设置为增量
  • 更改了构建设置: SWIFT _ COMPILATION _ MODE = singlefile 和 SWIFT _ OPTIMIZATION _ LEVEL = “-O”

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

最后,我下载了一个新的副本,并替换了之前安装的那个。完全一样的版本。成功了。

在我的例子中,它是关于一个名为 Location 的文件。经过一番挖掘,我发现它是关于有两个同名文件(奇怪)。因为我没有,但是,它已经解决了删除文件,并添加另一个文件与不同的名称。

filenames are used to distinguish private declarations with the same name

背景: 在尝试用最新的 Android 工作室和 XCode 11.3(Mojave 上的新安装)构建一个 iOS flutter 应用程序之后,我遇到了类似的问题“ Command CompileStoryboard 因为非零退出代码而失败”。这是我在 Windows10上用 Android 工作室创建的一个现有的 flutter Android 应用程序。

尝试过但失败了: 命令 + Shift + K,命令 + B,删除派生数据,SWIFT _ ENABLE _ BATCH _ MODE = NO

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

如果您正在使用 TabbController 和情节串连图板引用,请确保您已经有了该情节串连图板的起点。

对我来说,这与构建时删除的 约束有关。取消标记 Remove at build time修复了这个问题,我怀疑编译器在没有它的情况下确定布局时出现了问题。

错误代码将提到是哪个 Storyboard 导致了这个问题。

我们所做的,只是 clean the project。只是清理项目有时候不起作用。删除“生成文件夹”后,XCode 开始建立索引。让我们把 XCode 想象成人类: D 并让它索引一段时间。错误将完全消失。

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

For me cleaning the project (Command + Shift + K) and restarting xCode worked for me

我已经运行了这个错误

Command CompileSwift failed with a nonzero exit code

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

如果你双击这条消息,你会看到所有的绿色检查

Report Navigator -> <project_name> -> Build

This can also occur when you have two swift files with the same name. For example, two ContentView.swift files

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

see in the image... is Initial view controller

阅读各种文章,尝试很多事情。 对我来说是个简单的方法:

  • 已删除的 Pods 文件夹
  • 吊舱安装
  • 产品,清洁生成文件夹
  • 产品,制造

如果使用 CocoaPods,请确保打开的是 Xcode workspace而不是 project

在我的用例中,我使用了 Xcode 13中的函数“ Refactor to Storyboard”。它创建了新的重构故事板,但是没有将其添加到捆绑资源中。

所以我的解决办法是:

  • 在 Xcode Navigator 选择目标项目
  • 选择构建阶段选项卡
  • 展开“复制捆绑资源”,查看是否添加了新的故事板。如果没有,只需将其添加到列表中并重新构建。

我的应用程序使用的是 Notification Service Extension,使用的是 Xcode 11。

经过1-2年,我已经采取了这个项目到我的新的 m1芯片与 Xcode 13 Mac。但是编译失败了,给我看了豆荚里的错误。

我试图删除和添加所有豆荚,试图清洁等所有可能的答案在互联网上可用。几乎花了4-5个小时才让它运行起来,但是什么都没用。

成功的最终解决方案 :

我删除了,通知服务扩展项目,其目标等等。然后尝试运行应用程序。居然成功了。之后,我再次添加了那个扩展(通过创建新的扩展并再次放入相同的代码) ,一切都运行得非常好。

我仍然很惊讶,是扩展的问题还是豆荚的问题。但最终它对我起作用了。

Hopefully, this answer might resolve someone's issue and you can save enough time.

我在企业帐户上看到过这个错误,当用户帐户权限发生更改并生成新的配置文件时。

在我的例子中,我通过撤销开发人员证书并让 xcode 重新生成它们来修复这个问题。

最残酷的方法就是注销你在 Xcode 的账户,然后打开钥匙链接口,导出你的开发者证书和私钥(也就是备份以防万一)。从 Keychain Access 中删除证书和私钥(您已经执行了备份步骤,对吗?)重新启动,打开 xcode 并再次登录到您的帐户,然后选择“管理证书”... 它应该会提示重新生成证书。

此后,这个随机构建错误消失了。

我也有同样的问题。对我来说,最有效的方法就是删除所有的更改,然后做一个 Git pull:

git stash
git pull