具有多个 swift 版本和 swift-tools-version 的 Swift 包

标签 swift swift-package-manager

如何创建支持多个swift版本的swift包?

我的代码可以在 swift 4.0、4.2 和 5.0 上正常编译。如果我在 Package.swift 中更新 swift-tools-version 然后我不能在 4.0 或 4.2 上使用它,但如果我将 4.2 或 5.0 添加到 swiftLanguageVersions 它不识别版本枚举。

如果 swift-tools-version 设置为 4.0,.v5swiftLanguageVersions 中无法识别

如果 swift-tools-version 更新到 5.0 那么这个包将不能在 4.0 上运行

正确的做法是什么?或者一旦你更新到最新版本的 swift 包就停止支持旧版本?

最佳答案

您可以为每个版本创建单独的 Package@swift-#.swift 文件或 starting in Swift 4.2您可以使用 .version("#") 枚举。

参见:https://forums.swift.org/t/swiftlanguageversions-best-practices-for-libraries/18443

关于具有多个 swift 版本和 swift-tools-version 的 Swift 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57172786/

相关文章:

ios - 将 Swift3 Package Manager 与 Xcode 8 一起使用但没有成功

swift - 通过达到分数激事件作

xcode - Swift Package Manager 有本地缓存​​吗?

swift - 使用 Swift 包管理器时出错

swift - UITabBarController 图像太小

Swift 包管理器 - 框架分发

ios - 向 Swift 库添加对 SwiftPM 的支持

swift - 如何使用 Alamofire 框架调用带有请求正文的 http POST 端点

ios - 当我们关闭开关时,我们如何取消选择该行

swift - Mac Catalyst 上的系统分组背景颜色对于 Light Mode 不正确