使用 Swift Package Manager
30 March 2021
使用 Swift Package Manager
Swift Package Manager 是一个去中心化的源码管理工具。
创建一个基本的Swift package
mkdir SwiftGrabber
swift package init --type executable
生成 xcode project
在生成xcode project
的过程当中,SPM 会检查Package.swift
里定义的 dependency
、target
、product
,将dependency
引入project
中;根据定义的target
在project
里产生对应的target
;根据定义的product
在project
里产生对应的product
。
两个注意点:
- 对于
target
,需要在Sources
文件夹里有对应的子文件夹,并且子文件夹里要有.swift
文件,才会自动生成target
。 - 如果文件夹里有
main.swift
,那这个target
在xcode project
里就会被转成Command Line Tool Target
,如果一开始在init package
时没有加上--type executable
,但又希望它在xcode
里面用Command Line Tool Target
的设定,那就要手动加入main.swift
到对应的文件夹。同样在Tests
文件夹里也要相对的放上一个空白的xxxTests.swift
文件。
Package.swift示例如下:
import PackageDescription
let package = Package(
name: "SwiftGrabber",
products: [ // products 要放在 dependencies 前面
.library(name: "libGrabber", targets: ["libGrabber"]),
.executable(name: "SwiftGrabber", targets: ["SwiftGrabber"])
],
dependencies: [
.package(url:"https://github.com/Alamofire/Alamofire", from:"5.4.1")
],
targets: [
.target(name: "SwiftGrabber",dependencies: ["libGrabber"]),
.target(name: "libGrabber", dependencies: []),
.testTarget(name: "SwiftGrabberTests", dependencies: ["SwiftGrabber"]),
]
)
生成xcodeproj 在项目的根目录下,执行脚本:
swift package generate-xcodeproj