首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新到Xcode10.2/Swift 5后无法构建macOS项目

更新到Xcode10.2/Swift 5后无法构建macOS项目
EN

Stack Overflow用户
提问于 2019-03-27 05:02:02
回答 4查看 1.7K关注 0票数 5

在更新Xcode之前,我的项目构建得很好。

但是现在,我不能再构建这个项目了。当使用Swift 5时,构建项目永远不会完成。它停留在“构建100个任务的70个”,并且永远不会结束。这些数字也不总是相同的,但它永远不会完成构建。

如果我尝试使用Xcode将我的项目从Swift 4.2转换到Swift 5,它同样无法完成转换。

如果我尝试更改工具链以使用Swift 4.2.1版本的工具链,代码编译成功,但我在运行时立即崩溃:

代码语言:javascript
复制
dyld: Symbol not found: _$SBOWV
  Referenced from: /Users/compc/Library/Developer/Xcode/DerivedData/Swift_Coder-hczsehpbafcwkfgwyameucznmhsp/Build/Products/Debug/Swift Coder.app/Contents/MacOS/../Frameworks/SavannaKit.framework/Versions/A/SavannaKit
  Expected in: /usr/lib/swift/libswiftCore.dylib
 in /Users/compc/Library/Developer/Xcode/DerivedData/Swift_Coder-hczsehpbafcwkfgwyameucznmhsp/Build/Products/Debug/Swift Coder.app/Contents/MacOS/../Frameworks/SavannaKit.framework/Versions/A/SavannaKit

我尝试过清理项目和删除派生数据,但似乎都不起作用。

如果我使用Xcode10.1,这个项目可以继续构建并运行得很好。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-04-02 10:20:10

我的一些代码有问题,涉及以自定义方式将ClosedRange类型扩展为EncodableDecodable。在Swift 5中,当ClosedRangeBoundEncodableDecodable时,它已经符合EncodableDecodable,但是编译器没有给我关于冗余一致性的错误,而只是挂起了编译。

在我修改代码以使用新的Swift 5协议一致性之后,它编译得很好。然而,花了很长时间才将问题缩小到这个范围。在我看来,这似乎是Swift编译器中的一个错误,因为编译器会挂在Playground中,或者从命令行挂起,即使是在不同的Mac上也是如此。

票数 2
EN

Stack Overflow用户

发布于 2019-03-27 06:28:24

您的项目是否包含任何第三个库?如果是这样的话,试着找出哪一个是过时的。试着在没有这个库的情况下构建项目,我非常确定其中一些库已经过时了。您可能还希望将快速语言版本设置为旧版本。选择目标,转到Build Settings > Swift Language Version

票数 1
EN

Stack Overflow用户

发布于 2019-03-27 18:47:32

请删除派生数据,

如果您在工作区环境中,可以转到文件>工作区设置,或者对于常规项目环境,可以转到文件>项目设置。然后点击Derived data部分下面的灰色小箭头,并选择您的项目文件夹将其删除。

如果您有pod,请解压并重新安装所有pod文件。

希望这对你有用!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55366130

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档