Product

    The object that defines a package product.

    Product.swift:62Product.md
    class Product

    A package product defines an externally visible build artifact that’s available to clients of a package. Swift Package Manager assembles the product from the build artifacts of one or more of the package’s targets. A package product can be one of three types:

    Library

    Use a library product to vend library targets. This makes a target’s public APIs available to clients that integrate the Swift package.

    Executable

    Use an executable product to vend an executable target. Use this only if you want to make the executable available to clients.

    Plugin

    Use a plugin product to vend plugin targets. This makes the plugin available to clients that integrate the Swift package.

    The following example shows a package manifest for a library called “Paper” that defines multiple products:

    let package = Package(
        name: "Paper",
        products: [
            .executable(name: "tool", targets: ["tool"]),
            .library(name: "Paper", targets: ["Paper"]),
            .library(name: "PaperStatic", type: .static, targets: ["Paper"]),
            .library(name: "PaperDynamic", type: .dynamic, targets: ["Paper"]),
        ],
        dependencies: [
            .package(url: "http://example.com.com/ExamplePackage/ExamplePackage", from: "1.2.3"),
            .package(url: "http://some/other/lib", .exact("1.2.3")),
        ],
        targets: [
            .executableTarget(
                name: "tool",
                dependencies: [
                    "Paper",
                    "ExamplePackage"
                ]),
            .target(
                name: "Paper",
                dependencies: [
                    "Basic",
                    .target(name: "Utility"),
                    .product(name: "AnotherExamplePackage"),
                ])
        ]
    )

    Creating a Library Product

    Creating an Executable Product

    Creating a Plugin Product

    Naming the product

    See also