使用 Swift 5 为 Swift 包管理器指定最低 macOS 版本
Specify minimum macOS version for Swift Package Manager with Swift 5
为了在不添加 #if available
的情况下使用 SwiftPM 编译一些代码,我正在使用以下参数构建项目:
swift build -Xswiftc "-target" -Xswiftc "x86_64-apple-macosx10.11"
Swift 包管理器也可以处理 Xcode .xcconfig
文件,但仅在生成 Xcode 项目时才有效。
Swift 5 中是否有一种简单的方法可以在使用 swift build
从命令行构建时指定 macOS 的最低版本?
编译错误示例:
error: 'archivedData(withRootObject:)' is only available on OS X 10.11 or newer
let data = NSKeyedArchiver.archivedData(withRootObject: value)
let package = Package(
name: "NAME",
platforms: [
.macOS(.v10_11)
],
products: [
.library(name: "NAME", targets: ["NAME"]),
],
targets: [
.target(name: "NAME"),
]
)
一种方法是在 SPM 中使用 Deployment Settings。
Alex 的回答很有用
但是当我尝试运行一个旧项目时,仍然出错。
文件头需要修改为
// swift-tools-version:5.0
'platforms' 5.0
后有效
为了在不添加 #if available
的情况下使用 SwiftPM 编译一些代码,我正在使用以下参数构建项目:
swift build -Xswiftc "-target" -Xswiftc "x86_64-apple-macosx10.11"
Swift 包管理器也可以处理 Xcode .xcconfig
文件,但仅在生成 Xcode 项目时才有效。
Swift 5 中是否有一种简单的方法可以在使用 swift build
从命令行构建时指定 macOS 的最低版本?
编译错误示例:
error: 'archivedData(withRootObject:)' is only available on OS X 10.11 or newer
let data = NSKeyedArchiver.archivedData(withRootObject: value)
let package = Package(
name: "NAME",
platforms: [
.macOS(.v10_11)
],
products: [
.library(name: "NAME", targets: ["NAME"]),
],
targets: [
.target(name: "NAME"),
]
)
一种方法是在 SPM 中使用 Deployment Settings。
Alex 的回答很有用
但是当我尝试运行一个旧项目时,仍然出错。 文件头需要修改为
// swift-tools-version:5.0
'platforms' 5.0
后有效