如何创建一个支持多个 swift 版本的 swift 包?
我的代码在 swift 4.0、4.2 和 5.0 上编译得很好。如果我在 Package 中更新 swift-tools-version.swift那么我不能在 4.0 或 4.2 上使用它,但是如果我将 4.2 或 5.0 添加到 swiftLanguageVersions
它无法识别版本枚举。
如果 swift-tools-version 设置为 4.0,则无法在 swiftLanguageVersions
中识别.v5
如果 swift-tools-version 更新到 5.0,那么该软件包将无法在 4.0 上运行
正确的方法是什么?或者一旦您更新到 swift 的最新版本,软件包就不再支持旧版本?
您可以为每个版本创建单独的 Package@swift-#.swift 文件,或者从 Swift 4.2 开始,您可以使用 .version("#")
枚举。
请参阅:https://forums.swift.org/t/swiftlanguageversions-best-practices-for-libraries/18443
我的方法是将swift-tools-version
设置为您支持的最早版本的 Swift,并简单地忽略 swiftLanguageVersions
属性。到目前为止,它对我有用。
您还可以尝试使用条件编译在
Package.swift
文件中拥有不同版本的Package
。