<!--
{
  "availability" : [
    "SwiftPM: 5.6.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "PackageDescription",
  "identifier" : "/documentation/PackageDescription/Package/Dependency/package(url:exact:)",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "PackageDescription"
    ],
    "preciseIdentifier" : "s:18PackageDescription0A0C10DependencyC7package3url5exactAESS_AA7VersionVtFZ"
  },
  "title" : "package(url:exact:)"
}
-->

# package(url:exact:)

Adds a remote package dependency that uses an exact version requirement.

```
static func package(url: String, exact version: Version) -> Package.Dependency
```

## Parameters

`url`

The valid Git URL of the package.

`version`

The exact version of the dependency for this requirement.

## Return Value

A `Package.Dependency` instance.

## Discussion

Specifying exact version requirements are not recommended as
they can cause conflicts in your dependency graph when other packages depend on this package.
As Swift packages follow the semantic versioning convention,
think about specifying a version range instead.

The following example instructs the Swift Package Manager to use version `1.2.3`.

```swift
.package(url: "https://example.com/example-package.git", exact: "1.2.3"),
```

If the package you depend on defines traits, the package manager uses the dependency with its default set of traits.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)