Xcode 10构建失败,并显示“ Command CompileSwift失败,退出代码非零

时间:2018-09-20 00:33:57

标签: ios swift xcode10 swiftmessages

我最近将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

  

呼叫中缺少参数'backgroundColor'的参数

我与每个框架的开发人员讨论了问题,以寻求有关这些问题的帮助。

Issue On SwiftMessage GitHub Issue On WhatsNewKit GitHub

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

我认为这与可可豆荚有关,但是还没有找到解决方案。我该怎么做才能解决此问题?如果有人可以提供帮助,将受到不胜感激的是,被困在这里一天了。

更新: 这两个框架的最新版本适用于Swift 4.2。当我将每个框架的版本更改为Swift 4.0内置的版本时,我就可以构建项目。

17 个答案:

答案 0 :(得分:4)

请确保您的项目Swift语言版本是正确的版本。 SwiftMessages 6.0.0可与Swift 4.2一起使用。 Xcode->Project->Target->Build Settings->Swift Language Version

答案 1 :(得分:3)

对于pod SwiftMessages,如果您的应用不是Swift 4.2,则需要使用5.01版 pod'SwiftMessages','〜> 5.0.1'

它会像魅力一样工作

答案 2 :(得分:3)

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

答案 3 :(得分:3)

enter image description here

当我在两个不同的组中使用相同的类名时,发生了此错误。然后我重命名了其中一个类,问题就解决了

答案 4 :(得分:2)

我有几个框架(自产)以及我的应用程序。他们最终以某种方式最终与Swift版本不同步。确保所有框架都是相同的版本。就我而言,它们都需要设置为Swift 4.2。如果您尚未迁移到4.2,请记住Xcode可以帮助您完成此操作:编辑->转换-​​>转换为当前的Swift语法。

答案 5 :(得分:1)

我这样解决了:

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

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

我希望它能对您有所帮助。

答案 6 :(得分:1)

请确保您的项目构建设置优化级别处于无优化[-Onone]。

enter image description here

答案 7 :(得分:1)

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

我最终通过诱导以下其他步骤使其工作:

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

  • 验证一致的Swift版本(本例中为4.2)
  • 将仅针对Active Architecture的构建设置为
  • 将有效架构设置为 arm64,armv7 (以与基础项目匹配)
  • 将优化级别设置为(用于调试)
  • 将“编译模式”设置为“ 整个

答案 8 :(得分:1)

我在Xcode 10.2中发生了相同的问题,这是一个Xcode错误。 因此,我在较旧的Xcode版本(9.4)中打开了,效果很好。然后,在Xcode 10.2.1发布后,我将其更新为->清理并构建您的项目,现在我的问题就解决了。

答案 9 :(得分:0)

请指定您的广告连播的版本,例如pod 'RealmSwift', '~> 5.3.5' 或在Podfile中取消注释# platform :ios, '9.0'

答案 10 :(得分:0)


target 'XYZ' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for xyz
  pod 'SwiftyJSON'
  pod 'Localize-Swift'
    pod 'Alamofire'
    pod 'Kingfisher'
    pod 'Tabman'
    pod 'RSSelectionMenu'
    pod 'Pushbots'
    pod 'ACProgressHUD-Swift', '~> 1.4' 
    pod 'SKPhotoBrowser'
    pod 'ZoomableImageSlider'
    pod 'RSSelectionMenu'
    pod 'DropDown'
    pod 'ImagePicker'

end

我将平台:ios,“ 10.0”更新为11.0,错误消失了。更改平台或操作系统版本并检查。希望能有所帮助。

答案 11 :(得分:0)

早上好! 做一个清洁。使用“ commond + shift + k 关闭Xcode。 导航到Podfile所在的项目目录。 做Pod更新/ pod安装 打开x.xcworkspace

答案 12 :(得分:0)

我只是收到了相同的错误消息,此处以及该问题重复项中的所有答案均不适用于我的项目或没有帮助。 我不断阅读错误消息,发现自己已经愚蠢地在不同的文件夹中命名了两个单独的swift文件,并用相同的名称来更改一个文件,但是在更改一个文件之前,我尝试运行我的项目并拥有过去一个小时很生气。

最重要的是,不要意外地将文件命名为相同的名称,并彻底阅读错误代码!

答案 13 :(得分:0)

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

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

只需删除stringValue变量即可解决问题。

答案 14 :(得分: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. 重新编译项目

答案 15 :(得分:0)

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

  

当线程清理程序生成时,Swift编译器可能会崩溃   已启用。 (48719789)

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

因此,如果您收到此错误并启用了线程清理工具,请关闭它!

答案 16 :(得分:0)

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

enter image description here