23

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

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

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

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

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

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

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

4

18 回答 18

9

确保您的项目 Swift 语言版本是正确的版本。SwiftMessages 6.0.0 适用于 Swift 4.2。 Xcode->项目->目标->构建设置->Swift语言版本

于 2018-09-24T12:44:32.423 回答
5

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

在此处输入图像描述

于 2018-10-09T13:19:47.743 回答
5

我这样解决了:

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

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

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

于 2018-09-24T15:05:34.557 回答
4

早上好!做一个清洁。using" commond + shift + k 关闭 Xcode。导航到 Podfile 所在的项目目录。执行 pod update/pod install 打开 x.xcworkspace

于 2019-12-22T08:50:39.723 回答
4

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

它会像魅力一样发挥作用

于 2018-09-26T10:06:09.047 回答
4

在此处输入图像描述

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

于 2020-06-11T11:16:53.930 回答
4

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

于 2018-10-12T02:06:32.440 回答
3

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

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

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

  • 验证一致的 Swift 版本(在我的例子中是 4.2)
  • 将 Build for Active Architecture Only 设置为No
  • 将有效架构设置为arm64、armv7(与基础项目匹配)
  • 将优化级别设置为(用于调试)
  • 将编译模式设置为整体
于 2018-12-24T22:33:17.860 回答
3

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

于 2018-10-09T06:06:53.277 回答
3

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

在此处输入图像描述

于 2021-12-30T09:46:35.840 回答
1

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

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

于 2019-06-24T07:06:07.463 回答
1

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

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

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

于 2019-06-07T21:05:47.323 回答
1

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

于 2019-04-24T05:56:36.303 回答
1

我有同样的问题,我的 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</p>

  5. pod install
  6. 重新编译项目
于 2019-05-06T16:01:34.283 回答
1

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

在此处输入图像描述

于 2019-03-27T01:16:28.577 回答
1

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

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

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

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

于 2019-03-27T09:52:39.777 回答
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 并且错误消失了。更改您的平台或操作系统版本并检查。希望能有所帮助。

于 2020-09-17T16:39:58.683 回答
0

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

于 2020-12-02T16:35:54.823 回答