为什么我不能使用 SwiftPM 作为依赖使用 Swift 包管理器?

Why can't I use SwiftPM as a dependency using Swift Package Manager?

我有以下 Package.swift:

// swift-tools-version:5.2
import PackageDescription

let package = Package(
    name: "my-vapor-project",
    platforms: [
       .macOS(.v10_15)
    ],
    dependencies: [
        //  A server-side Swift web framework.
        .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0-rc"),
        .package(url: "https://github.com/vapor/fluent.git", from: "4.0.0-rc"),
        .package(url: "https://github.com/vapor/fluent-mysql-driver.git", from: "4.0.0-rc"),
        .package(url: "https://github.com/apple/swift-package-manager", .branch("master")),
    ],
    targets: [
        .target(name: "App", dependencies: [
            .product(name: "Fluent", package: "fluent"),
            .product(name: "FluentMySQLDriver", package: "fluent-mysql-driver"),
            .product(name: "Vapor", package: "vapor"),
            .product(name: "SwiftPM", package: "swift-package-manager")
        ]),
        .target(name: "Run", dependencies: ["App"]),
        .testTarget(name: "AppTests", dependencies: [
            .target(name: "App"),
            .product(name: "XCTVapor", package: "vapor"),
        ])
    ]
)

当我保存文件时,Xcode 尝试自动解析依赖项,我收到以下错误和警告:

Showing All Messages /Users/sluther/Projects/my-vapor-project/Package.swift: product dependency 'SwiftPM' in package 'swift-package-manager' not found

: dependency 'SwiftPM' is not used by any target

事实证明,在撰写本文时,Swift Package Manager 在使用 Swift Tools Version 5.2 时无法作为依赖项包含在内,该版本删除了用于定义产品依赖项的旧语法。将 Swift 工具版本切换到 5.1 解决了这个问题。

// swift-tools-version:5.1
import PackageDescription

let package = Package(
    name: "my-vapor-project",
    platforms: [
       .macOS(.v10_15)
    ],
    dependencies: [
        //  A server-side Swift web framework.
        .package(url: "https://github.com/vapor/vapor.git", from: "4.0.0-rc"),
        .package(url: "https://github.com/vapor/fluent.git", from: "4.0.0-rc"),
        .package(url: "https://github.com/vapor/fluent-mysql-driver.git", from: "4.0.0-rc"),
        .package(url: "https://github.com/apple/swift-package-manager", .branch("master")),
    ],
    targets: [
        .target(name: "App", dependencies: [
            .product(name: "Fluent", package: "fluent"),
            .product(name: "FluentMySQLDriver", package: "fluent-mysql-driver"),
            .product(name: "Vapor", package: "vapor"),
            "SwiftPM"
        ]),
        .target(name: "Run", dependencies: ["App"]),
        .testTarget(name: "AppTests", dependencies: [
            .target(name: "App"),
            .product(name: "XCTVapor", package: "vapor"),
        ])
    ]
)