Swift Package指南
常用 SPM 命令
| 命令 | 说明 |
|---|---|
swift package init | 初始化新包 |
swift build | 构建包 |
swift test | 运行测试 |
swift run | 构建并运行可执行文件 |
swift package resolve | 解析依赖 |
swift package update | 更新依赖 |
swift package show-dependencies | 显示依赖树 |
Package.swift 示例
// swift-tools-version: 5.9
import PackageDescription
let package = Package(
name: "MyLibrary",
platforms: [.macOS(.v13), .iOS(.v16)],
products: [
.library(name: "MyLibrary", targets: ["MyLibrary"]),
.executable(name: "MyApp", targets: ["MyApp"]),
],
dependencies: [
.package(url: "https://github.com/apple/swift-argument-parser", from: "1.3.0"),
.package(url: "https://github.com/vapor/vapor", .upToNextMajor(from: "4.89.0")),
],
targets: [
.target(
name: "MyLibrary",
dependencies: []),
.executableTarget(
name: "MyApp",
dependencies: [
"MyLibrary",
.product(name: "ArgumentParser", package: "swift-argument-parser"),
]),
.testTarget(
name: "MyLibraryTests",
dependencies: ["MyLibrary"]),
]
)
包结构
MyPackage/
├── Package.swift
├── Sources/
│ ├── MyLibrary/
│ │ └── MyLibrary.swift
│ └── MyApp/
│ └── main.swift
└── Tests/
└── MyLibraryTests/
└── MyLibraryTests.swift