The object that defines a package product.
SDK
- Xcode 10.2+
Framework
- Swift Package Manager
Declaration
class Product
Overview
A package product defines an externally visible build artifact that’s available to clients of a package. The product is assembled from the build artifacts of one or more of the package’s targets. A package product can be one of two 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.
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: [
.target(
name: "tool",
dependencies: [
"Paper",
"ExamplePackage"
]),
.target(
name: "Paper",
dependencies: [
"Basic",
.target(name: "Utility"),
.product(name: "AnotherExamplePackage"),
])
]
)