Target
The basic building block of a Swift package.
Declaration
final class TargetOverview
Each target contains a set of source files that Swift Package Manager compiles into a module or test suite. You can vend targets to other packages by defining products that include the targets.
A target may depend on other targets within the same package and on products vended by the package’s dependencies.
Test Libraries Targets
Built-in testing libraries, such as Swift Testing and XCTest, are only available for use in certain runtime contexts. While you can use these within Swift libraries intended for testing, take care so that any such libraries only terminate in test targets, as targets that use Swift Testing or XCTest should never be distributed to end users. Including testing libraries as a dependency to an executable target, as either a direct or transitive dependency, can cause clients to encounter linking issues.
Topics
Naming the Target
Configuring File Locations
Creating a Binary Target
Creating a System Library Target
Creating an Executable Target
executableTarget(name:dependencies:path:exclude:sources:resources:publicHeadersPath:packageAccess:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)executableTarget(name:dependencies:path:exclude:sources:resources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)executableTarget(name:dependencies:path:exclude:sources:resources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:)
Creating a Regular Target
target(name:dependencies:path:exclude:sources:resources:publicHeadersPath:packageAccess:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)target(name:dependencies:path:exclude:sources:resources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)target(name:dependencies:path:exclude:sources:resources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:)target(name:dependencies:path:exclude:sources:publicHeadersPath:cSettings:cxxSettings:swiftSettings:linkerSettings:)target(name:dependencies:path:exclude:sources:publicHeadersPath:)
Creating a Test Target
testTarget(name:dependencies:path:exclude:sources:resources:packageAccess:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)testTarget(name:dependencies:path:exclude:sources:resources:cSettings:cxxSettings:swiftSettings:linkerSettings:plugins:)testTarget(name:dependencies:path:exclude:sources:resources:cSettings:cxxSettings:swiftSettings:linkerSettings:)testTarget(name:dependencies:path:exclude:sources:cSettings:cxxSettings:swiftSettings:linkerSettings:)testTarget(name:dependencies:path:exclude:sources:)
Creating a Plugin Target
plugin(name:capability:dependencies:path:exclude:sources:packageAccess:)pluginCapabilityTarget.PluginCapabilityPluginCommandIntentPluginPermissionplugin(name:capability:dependencies:path:exclude:sources:)
Declaring a Dependency Target
Configuring the Target
cSettingscxxSettingsswiftSettingslinkerSettingspluginsBuildConfigurationBuildSettingConditionCSettingCXXSettingSwiftSettingLinkerSettingTarget.PluginUsagepackageAccess