---
title: Product
framework: packagedescription
role: symbol
role_heading: Class
path: packagedescription/product
---

# Product

The object that defines a package product.

## Declaration

```swift
class Product
```

## Overview

Overview 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: 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"),             ])     ] )

## Topics

### Creating a Library Product

- [library(name:type:targets:)](packagedescription/product/library(name:type:targets:).md)
- [Product.Library](packagedescription/product/library.md)

### Creating an Executable Product

- [executable(name:targets:)](packagedescription/product/executable(name:targets:).md)
- [Product.Executable](packagedescription/product/executable.md)

### Creating a Plugin Product

- [plugin(name:targets:)](packagedescription/product/plugin(name:targets:).md)
- [Product.Plugin](packagedescription/product/plugin.md)

### Naming the product

- [name](packagedescription/product/name.md)

## Relationships

### Inherited By

- [Product.Executable](packagedescription/product/executable.md)
- [Product.Library](packagedescription/product/library.md)
- [Product.Plugin](packagedescription/product/plugin.md)

## See Also

### Configuring Products

- [products](packagedescription/package/products.md)
