我最近将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内置的版本时,我就可以构建项目。
答案 0 :(得分:4)
答案 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)
答案 4 :(得分:2)
我有几个框架(自产)以及我的应用程序。他们最终以某种方式最终与Swift版本不同步。确保所有框架都是相同的版本。就我而言,它们都需要设置为Swift 4.2。如果您尚未迁移到4.2,请记住Xcode可以帮助您完成此操作:编辑->转换->转换为当前的Swift语法。
答案 5 :(得分:1)
我这样解决了:
为您的 .pod 文件中的每个取消注释库重复步骤 2-3-4 -5
我希望它能对您有所帮助。
答案 6 :(得分:1)
答案 7 :(得分:1)
所有答案对我都有帮助。就我而言,我只是手动安装框架,但是这种问题也会发生。我尝试了所有答案,但在构建过程中仍然遇到此问题。奇怪的是,在编码时,我可以单击并解决所有“缺失”的组件。我还清理并删除了派生数据,重新启动了Xcode等。
我最终通过诱导以下其他步骤使其工作:
在每个框架项目/目标(包括我自己的目标)上
答案 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,问题解决了。 具体步骤为:
pod deintegrate
取消集成。卸载所有Cocoapods。
for i in $( gem list --local --no-version | grep cocoapods );
do
gem uninstall $i;
done
安装稳定版的Cocoapods。现在是1.6.1。
gem install cocoapods
清理项目并清空DerivedData
pod install
答案 15 :(得分:0)
在升级到Xcode 10.2和Swift 5时,我偶然发现了这个问题。尝试了所有内容之后,我在发行说明中找到了这个问题:
当线程清理程序生成时,Swift编译器可能会崩溃 已启用。 (48719789)
当然,在关闭Thread Sanitizer之后,我的项目可以再次编译而没有错误。
因此,如果您收到此错误并启用了线程清理工具,请关闭它!
答案 16 :(得分:0)