Swift Package Manager - Swift 4 syntax

2019-03-25 03:10发布

问题:

I'm trying to use updated SPM for Swift4 with the following Package.swift file - PackageDescription API Version 4

import PackageDescription

let package = Package(
    name: "Name",
    dependencies : [
        .package(url: "url", .branch("swift4"))
    ],
    exclude: ["Tests"]
)

I have a correct version of SPM also:

Apple Swift Package Manager - Swift 4.0.0-dev (swiftpm-13081.9)

But I can not build the library by swift build command. I see the following error:

... error: type 'Version' has no member 'branch'

回答1:

You're missing the tools version specifier in your manifest; add the following as the first line of your Package.swift:

// swift-tools-version:4.0

By default if that line is omitted, it'll default to manifest version 3 and also compiler version 3. For more information see SE-0152 or Swift Package Manager Manifest API Redesign on swift.org.