Xcode 10构建失败,并且'Command CompileSwift失败并返回非零退出代码

问题描述 投票:16回答:13

我最近将Xcode更新到了版本10,并在尝试构建我的项目时开始收到一个奇怪的错误。我目前正在使用Swift 4.0,我尝试升级到swift版本4.2。但是当我这样做时,我在许多框架中都收到了同样的错误。

命令编译Swift失败,出现非零退出代码

到目前为止,我已删除派生文件夹。更新了所有pod,还删除了所有pod并使用下面的终端命令重新安装它们。

sudo gem install cocoapods-deintegrate cocoapods-clean
pod deintegrate
pod clean
pod install

这不能解决我的问题。但是,我找到了一些可行的方法,即在arm64中添加Build Setting -> valid architectures架构并启用自动代码但是,当我检查它已经存在并且已经启用了代码签名。

另外,我确实有一些与框架有关的其他构建错误。

SwiftMessages

“SwiftMessages.Config”类型的值没有成员'presentationContext'

WhatsNewKit

在call`中缺少参数'backgroundColor'的参数

我向每个框架的开发人员提出了问题,以寻求这些问题的帮助。

Issue On SwiftMessage GitHub Issue On WhatsNewKit GitHub

当我点击presentationContext时,它会将我带到SwiftMessages框架内的结构。通常,当我有“没有会员”警告时,我无法点击查看其存在的原始位置。

我认为这与可可豆荚有关,但尚未能找到解决方案。我该怎么做才能解决这个问题?如果有人可以提供帮助,将会深深感激被困在这一天。

更新:两个框架的最新版本适用于swift 4.2。当我将每个框架的版本更改为在swift 4.0中构建的版本时,我得到了要构建的项目。

ios swift xcode10 swiftmessages
13个回答
4
投票

确保您的项目Swift语言版本的版本正确。 SwiftMessages 6.0.0适用于Swift 4.2。 Xcode->Project->Target->Build Settings->Swift Language Version


0
投票

升级到Xcode 10.2和Swift 5时,我偶然发现了这个问题。在尝试了所有内容后,我在发行说明中找到了这个:

启用Thread Sanitizer时,Swift编译器可能在构建期间崩溃。 (48719789)

当然,在关闭Thread Sanitizer后,我的项目可以再次编译而没有错误。

因此,如果您收到此错误并启用了Thread Sanitizer,请将其关闭!


0
投票

我遇到了同样的问题,我的Xcode版本是10.2.1(10E1001),Cocoapods版本是1.7.0.beta.2。

我回到了Cocoapods 1.6.1,问题解决了。具体步骤是:

  1. pod deintegrate取消整合。
  2. 卸载所有Cocoapods。 for i in $( gem list --local --no-version | grep cocoapods ); do gem uninstall $i; done
  3. 安装Cocoapods的稳定版本。现在它是1.6.1。 gem install cocoapods
  4. 清理项目并清空DerivedData
  5. pod install
  6. 重新编译项目

0
投票

在我的情况下,这是一个代码错误:

self.myDto.map{ (dto)} in 
      var stringValue = (dto.value(forKey: "name") as! String)
      stringValue.append("c")
      return stringValue
}

刚删除那个stringValue变量修复了问题。


0
投票

我只是有相同的错误消息,这里和这个问题的副本中没有任何答案适用于我的项目或有用。我一直在阅读错误消息并且意识到我在不同文件夹中愚蠢地命名了两个单独的swift文件,这些文件具有相同的名称,意图改变一个,但在我改变之前,我试图运行我的项目并且有最后一小时很生气。

最重要的是,不要不小心将文件命名为同名并彻底阅读错误代码!


3
投票

对于pod SwiftMessages如果你的应用程序不是swift 4.2你需要使用版本5.01 pod'SwiftMessages','〜> 5.0.1'

它会像魅力一样工作


3
投票

将Swift版本设置为4.2然后pod解体,pod安装,为我解决这个问题。谢谢@ alejandro-iván


2
投票

我有几个框架(本土)加上我的应用程序。不知何故,他们最终与Swift版本不同步。确保所有框架都是相同的版本。就我而言,他们都需要设置为Swift 4.2。如果你还没有完成到4.2的迁移,那么请记住Xcode有助于此:编辑 - >转换 - >到当前的Swift语法。


1
投票

我这样解决了:

  1. 评论.pod文件中的所有pod
  2. 在终端上,运行命令pod install --no-repo-update
  3. 打开Xcode执行清理并重建项目
  4. 现在打开.pod文件并取消注释第一个库
  5. 在终端上,运行命令pod install

对.pod文件中的每个取消注释库重复步骤2 - 3 - 4 -5

我希望它能为你提供帮助。


1
投票

确保您的项目构建设置优化级别在No Optimization [-Online]中。

enter image description here


1
投票

所有的答案对我都有帮助。就我而言,我只手动安装框架,但也会发生这种问题。我尝试了所有的答案,但在构建过程中仍然遇到了这个问题。奇怪的是,在编码时,我可以通过cmd单击并解决所有“缺失”的组件。我还清理并删除了派生数据,重新启动了Xcode等。

我最终通过引入这些额外的步骤来实现它:

在每个框架项目/目标(包括我自己的):

  • 验证一致的Swift版本(在我的情况下为4.2)
  • 将Build for Active Architecture设置为No
  • 将有效体系结构设置为arm64,armv7(与基础项目匹配)
  • 将优化级别设置为无(用于调试)
  • 将编译模式设置为整数

1
投票

我在Xcode 10.2中遇到了同样的问题,这是一个Xcode错误..!所以,我在较旧的Xcode版本(9.4)中打开,它工作正常。然后我在发布后更新到Xcode 10.2.1 - >清理并构建你的项目,现在我的问题解决了。


0
投票

在我的情况下,我连接一个真正的iPhone而不是模拟器,并在其上运行应用程序,它解决了问题。但首先连接iphone,然后从此菜单中选择它,然后按下运行按钮。问题也将解决。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.