# Installation

The Swift SDK can be installed using Swift Package Manager, if you are starting a new project we always recommend using the latest release.
Releases and changes are published on the [Github releases page](https://github.com/GetStream/stream-video-swift/releases).

We also provide pre-built XCFramework support, read more [here](#xcframeworks).

### Add the SDK to your project

To add `StreamVideo` SDK, open Xcode and follow these steps:

- In Xcode, go to File -> "Add Packages..."
- Paste the URL <https://github.com/GetStream/stream-video-swift.git>
- In the option "Dependency Rule" choose "Branch," in the single text input next to it, enter "main"

![Screenshot shows how to add the SPM dependency](@video/ios/_assets/spm.png)

- Choose "Add Package" and wait for the dialog to complete.
- Select `StreamVideo` and `StreamVideoSwiftUI` (if you use SwiftUI, otherwise also select `StreamVideoUIKit`).

![Screenshot shows selection of dependencies](@video/ios/_assets/spm_select.png)

<details>
<summary>➤ Do you want to use <b>XCFrameworks</b>? (Click to read more)</summary>
<p>

<admonition type="warning">

Our XCFrameworks are built with **Swift 5.9**. In order to use them you need **Xcode 15** or above

</admonition>

You can learn more about [our Module Stable XCFrameworks here](#xcframeworks)

- Use the URL <https://github.com/getstream/stream-video-swift-spm.git>

</p>
</details>

### Permissions

Making a video call requires the usage of the camera and the microphone of the device. Therefore, you need to request permissions to use them in your app. In order to do this, you will need to add the following keys and values in your `Info.plist` file.

`Privacy - Camera Usage Description` - "Your_app_name requires camera access in order to capture and transmit video"
`Privacy - Microphone Usage Description` - "Your_app_name requires microphone access in order to capture and transmit audio"

![Screenshot shows permissions in the .plist file](@video/ios/_assets/permissions.png)

### Push notifications

Stream video support both Remote Notifications and VoIP notifications. See the [Push Notification](/video/docs/ios/advanced/incoming-calls/push-notifications/) section for more details.

## XCFrameworks

In an effort to have [**Module Stability**](https://www.swift.org/blog/library-evolution/), we distribute **pre-built XCFrameworks**.

<admonition type="info">

Our XCFrameworks are built with Swift 5.9. In order to use them you need Xcode 15 or above.

</admonition>

An **XCFramework** is a package that contains binaries for multiple architectures/platforms, but only the particular slice of that package required for your architecture/platform will be used.

**Benefits of XCFrameworks:**

- Conveniently import a single package
- Supports all platforms and architectures
- No more fat binaries. No more architectures stripping

<admonition type="info">

In order to manually integrate StreamVideo XCFrameworks, you need to add the additional dependencies to your project.

```swift
.package(name: "StreamWebRTC", url: "https://github.com/GetStream/stream-video-swift-webrtc.git", .exact("114.5735.8")),
.package(url: "https://github.com/apple/swift-protobuf.git", from: "1.18.0")
```

</admonition>

---

This page was last updated at 2025-08-15T14:16:38.784Z.

For the most recent version of this documentation, visit [https://getstream.io/video/docs/ios/basics/installation/](https://getstream.io/video/docs/ios/basics/installation/).