---
title: "FairPlay iOS SDK Guide"
description: "This document describes how to use the libraries and sample project included in the FairPlay iOS SDK."
---
> For the complete documentation index, see [llms.txt](/llms.txt).

import YouTubeEmbed from '../../../../../components/YouTubeEmbed.astro';

DoveRunner FairPlay iOS SDK makes it easy to apply Apple's FairPlay Streaming DRM when developing media service apps for iOS. This document describes how to use the libraries and sample projects included in the SDK.

Details of DoveRunner Multi DRM service integration are provided in [License Token Guide](/content-security/multi-drm/license/license-token/). For technical questions about using the SDK, please visit our [Helpdesk site](https://support.doverunner.com).

:::note 

This SDK product can be downloaded from [DoveRunner Github repository](https://github.com/inka-pallycon/pallycon-fps-ios-sdk). In the trial account, you can freely test SDK products within the trial limit on the number of licenses issued. However, in order to apply the SDK to commercial services, you must apply for a plan that includes SDK usage rights when subscribing to DoveRunner commercial plans.

:::

## Supported Environments

- iOS 13.5+


## Prerequisites

To apply FairPlay Streaming DRM, content service site should follow the below steps before starting integration.

1. Enroll in Apple developer program ( https://developer.apple.com/support/enrollment/ )
2. Request `FPS Deployment Package` to Apple ( https://developer.apple.com/streaming/fps/ )
3. Using the `deployment package`, create the below four items and register them on `Integration Settings` page of DoveRunner Console site. 

```txt
- FPS certificate file (.der or .cer)
- Private key file (.pem)
- Password for the private key (string)
- Application secret key (ASK) string
```

> **NOTE:**
>
> Please refer to the [FairPlay Cert Registration Tutorial](/content-security/multi-drm/license/fps-cert-tutorial/) for details on the above registration process.

## Tutorial Video

This video is a tutorial for playing DRM content in an iOS app using the FPS SDK.

<YouTubeEmbed videoId="8hGu_1HQ1NY" />

> For optimal playback, select '1080p' as the video quality and enable subtitle (Korean or English) before starting playback.

## Configuring your project

You can add DoveRunner FPS SDK by following steps:

1. Download the `DoveRunnerFairPlay.xcframework` file from [github](https://github.com/doverunner/fps-ios-sdk).
2. Add the `PallyConFPSSDK.xcframework` library provided in the `lib` folder to your project.
  - Add the framework's path to `Linked Frameworks and Libraries` setting in Xcode `General` tab.
  - Add the framework's path to `Framework Search Paths` setting in Xcode `Build Settings` tab.

> - [GoogleCast Framework](https://developers.google.com/cast/docs/developers#ios) is required to build 'Advanced Sample'.
> - Use [COCOAPODS](https://cocoapods.org/) to install GoogleCast.framework (pod install), and execute the created `PallyConFPSAdvanced.xcworkspace`.

## Quick Start

The following code shows how to stream or download FPS HLS content using DoveRunnerFairPlay SDK.

### Streaming FPS content

```swift
// 1. Initialize the DoveRunnerFairPlay SDK.
let doverunnerSdk = DoveRunnerFairPlay()

let urlAsset = AVURLAsset(url: "Content Url(m3u8)")
let config = FairPlayConfiguration(avURLAsset: urlAsset, 
                                   contentId: "ContentID", 
                                   certificateUrl: "Certification URL", 
                                   authData: "Token or CustomData")

// 2. Before playing FPS content, prepare to acquire a license by setting token information.
doverunnerSdk.prepare(drm: config)
```

### Downloading FPS content

```swift
// 1. Create DoveRunnerFairPlay instance.
let doverunnerSdk = DoveRunnerFairPlay()

let urlAsset = AVURLAsset(url: "Content Url(m3u8)")
let config = FairPlayConfiguration(avURLAsset: urlAsset, 
                                   contentId: "ContentID", 
                                   certificateUrl: "Certification URL", 
                                   authData: "Token or CustomData")

// 2. To download FPS content, create a DownloadTask object and enter token information to prepare for license acquisition.
let downloadTask = doverunnerSdk.createDownloadTask(drm: config, 
                                         downloadDelegate:"FairPlayDownloadDelegate")

// 3. Start downloading content
// If the content download was canceled previously, it will be resumed.
downloadTask.resume()

// 4. Cancel download (if needed)
downloadTask.cancel()
```


### Create CustomData for Chromecast playback

```swift
// DoveRunnerFairPlay SDK supports Chromecast.
// Get CustomData needed to create 'GCKMediaInformation' object when using Chromecast SDK
// CustomData should be created by DoveRunnerFairPlay instance.
let jsonData = doverunnerSdk.getJsonforChromecastPlayback(authData: "Token or CustomData")
```

## API References

> For descriptions of all the APIs provided by DoveRunner FPS iOS SDK, see the API reference documentation included in the SDK file.