繁体   English   中英

Xcode 10 构建失败,“命令 CompileSwift 失败,退出代码为非零”

[英]Xcode 10 build fails with 'Command CompileSwift failed with a nonzero exit code

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

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

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

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

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

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

SwiftMessages

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

WhatsNewKit

调用中缺少参数“背景颜色”的参数

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

SwiftMessage 上的问题 GitHub WhatsNewKit 上的问题 GitHub

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

我认为这与 cocoa 吊舱有关,但还没有找到解决方案。 我能做些什么来纠正这个问题? 如果有人可以提供帮助,我们将不胜感激,现在已经坚持了一天。

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

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

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

在此处输入图片说明

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

我是这样解决的:

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

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

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

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

它会像魅力一样发挥作用

在此处输入图片说明

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

我有几个框架(本土)加上我的应用程序。 不知何故,他们最终与 Swift 版本不同步。 确保所有框架都是相同的版本。 就我而言,它们都需要设置为 Swift 4.2。 如果您还没有迁移到 4.2,请记住 Xcode 对此有帮助:Edit -> Convert -> To Current Swift Syntax。

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

我最终通过引入这些额外的步骤让它工作:

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

  • 验证一致的 Swift 版本(在我的情况下为 4.2)
  • 将仅针对活动架构的构建设置为
  • 将 Valid Architecture 设置为arm64、armv7 (与基础项目匹配)
  • 将优化级别设置为(用于调试)
  • 将编译模式设置为整体

早上好! 干干净净。 使用" commond + shift + k关闭Xcode。导航到Podfile 所在的项目目录。执行pod update/pod install 打开x.xcworkspace

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

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

果然,关闭 Thread Sanitizer 后,我的项目可以再次编译而不会出错。

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

同样的问题在 Xcode 10.2 中发生在我身上,这是一个 Xcode 错误..! 所以,我在旧的 Xcode 版本(9.4)中打开,它运行良好。 然后我在发布后更新到 Xcode 10.2.1 -> Clean and build your project,现在我的问题解决了。

我遇到了同样的问题,我的 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. 清理项目并清空派生数据

  5. pod install
  6. 重新编译项目

就我而言,这是一个代码错误:

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

刚刚删除那个stringValue变量解决了这个问题。

我只是有相同的错误消息,这里和这个问题的副本中的任何答案都不适用于我的项目或有帮助。 我继续阅读错误消息并意识到我愚蠢地将两个单独的 swift 文件命名为不同文件夹中的同名文件,打算更改一个,但在更改一个之前,我尝试运行我的项目并生气了最后一个小时。

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

仅用于使用该命令重新安装pod pod install请参阅下面的附件

https://i.stack.imgur.com/dbGyV.png

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

在此处输入图片说明


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,错误消失了。 更改您的平台或操作系统版本并检查。 希望能有所帮助。

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

我在 Xcode 14 上遇到了这个问题。在 podfile 底部添加这个。

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
    # some older pods don't support some architectures, anything over iOS 11 resolves that
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
    end
  end
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM