理论上,应该可以将以前的 Swift 工具链与新的 Xcode 版本一起使用,这样您就可以在升级 Swift 版本之前继续编译您的代码。您可以在https://swift.org/download下载工具链版本。
但是,虽然应用程序在 Xcode 首选项中切换工具链并使用 Xcode 10.2 作为命令行工具后进行编译 - 运行它们会导致启动时出现此错误:
dyld: Symbol not found: _OBJC_CLASS_$__TtCs12_SwiftObject
Referenced from: ~/Library/Developer/CoreSimulator/Devices/CAAB28E5-9B4A-41A3-ADED-A481A62842BA/data/Containers/Bundle/Application/<Redacted>/Frameworks/PhoneNumberKit.framework/PhoneNumberKit
Expected in: /Library/Developer/Toolchains/swift-5.0.1-RELEASE.xctoolchain/usr/lib/swift/iphonesimulator/libswiftCore.dylib
in ~/Library/Developer/CoreSimulator/Devices/CAAB28E5-9B4A-41A3-ADED-A481A62842BA/data/Containers/Bundle/Application/<Redacted>/Frameworks/PhoneNumberKit.framework/PhoneNumberKit
在以前的 Xcode 测试版、 GitHub、Apple 论坛和其他地方有一些关于类似错误的讨论,表明它是 Carthage 或测试版的问题——可能只是我自己使用的第三方库。
有没有人遇到过这个?是否可以将旧工具链与较新的 Xcode 版本一起使用?