更新到 Xcode 10.2/Swift 5 后无法构建 macOS 项目

Can't build macOS project after updating to Xcode 10.2/Swift 5

我的项目在更新之前构建良好Xcode。

但是现在,我无法再构建该项目。使用 Swift 5 时,构建项目永远不会完成。它在 "Building 70 of 100 tasks" 处停止并且永远不会完成。这些数字也不总是相同的,但它永远不会完成构建。

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

如果我尝试更改工具链以使用 Swift 4.2.1 发布工具链,代码编译成功但我在 运行 时间立即遇到此崩溃:

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

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

如果我使用 Xcode 10.1.

,项目将继续构建并且 运行 完全没问题

您的项目是否包含第三方库?如果是这样,请尝试找出哪个已过时。尝试在没有这个库的情况下构建项目,我完全确定其中一些已经过时了。您可能还想将 swift 语言版本设置为旧版本。 Select 目标,转到构建设置> Swift 语言版本

请删除派生数据,

如果您处于工作区环境中,则可以转到文件 > 工作区设置;对于常规项目环境,可以转到文件 > 项目设置。然后单击派生数据部分下的灰色小箭头和 select 您的项目文件夹以将其删除。

如果您有 Pods 则再次分解并重新安装所有 pod 文件。

希望这对你有用!

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

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

上也是如此

禁用 iCloud。

问题是桌面和icloud不一致造成的!

花了 24 小时试图找出工作区在启动时冻结的原因。