---
# System prepended metadata

title: How TBD Swift dependencies work

---

## How TBD Swift dependencies work

## Package dependencies
```swift!
dependencies: [
     .package(url: "https://github.com/TBD54566975/web5-swift.git", branch: "main"),
    .package(url: "https://github.com/TBD54566975/tbdex-swift.git", branch: "main"),
]
```
You just put the GitHub URL, and we have opted to point to the main branch.

## Files to care about 

### Code files

#### Package.swift
- Found at **site/testsuites/testsuite-swift/Package.swift**
- This is similar to package.json in JS

#### Package.resolved
- Found at **site/testsuites/testsuite-swift/Package.resolved**
- This is similar to package-lock.json in JS

### Documentation / Component
**- Only mentioned here so far: https://developer.tbd.website/docs/tbdex/wallet/required-sdks?lang=Swift**

## Be careful
Swift package manager (SPM) automatically does the following:
* Resolves dependencies 
* Fetches packages
* Updates packages

Basically, since we're pointing towards main..anytime detects a change has been added on main, it will update the dependencies in the docs website, which can then introduce breaking changes to our documentation. 

The Swift SDK is still heavily under development, so I found this to happen often.