---
title: "FairPlay iOS SDK 가이드"
description: "본 문서는 FairPlay iOS SDK에 포함된 라이브러리와 샘플 프로젝트의 사용법에 대해 설명합니다."
---
> For the complete documentation index, see [llms.txt](/llms.txt).

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

도브러너 FairPlay iOS SDK는 iOS용 미디어 서비스 앱을 개발할 때 Apple의 FairPlay Streaming (FPS) DRM을 쉽게 적용할 수 있게 해주는 제품입니다. 본 문서는 SDK에 포함된 라이브러리와 샘플 프로젝트의 사용법에 대해 설명합니다.

FPS 클라이언트와 연동되는 도브러너 멀티 DRM 서비스에 대한 설명은 [라이선스 토큰 가이드](/ko/content-security/multi-drm/license/license-token/)를 참고하시기 바랍니다.
SDK 사용과 관련한 기술 문의는 [헬프데스크](https://support.doverunner.com) 사이트를 이용해 주시기 바랍니다.

:::note 

해당 SDK 제품은 [도브러너 깃허브 저장소](https://github.com/inka-pallycon/pallycon-fps-ios-sdk)에서 다운로드 받을 수 있습니다. 트라이얼 계정에서는 라이선스 발급 수 제한 내에서 자유롭게 SDK 제품을 테스트할 수 있으나, 상용 서비스에 SDK를 적용하기 위해서는 도브러너 상용 서비스 가입 시 SDK 사용 권한이 포함된 요금제로 신청해야 합니다.

:::

## 지원 환경

- iOS 13.5+

## 선행 사항

FPS License 발급 연동을 구축 하기 위해서는 콘텐츠 서비스 측에서 Apple로부터 아래 정보를 발급 받아 도브러너 멀티DRM 서비스에 설정해 주어야 합니다.

1. Apple 개발자 계정 생성 ( [https://developer.apple.com/support/enrollment/](https://developer.apple.com/support/enrollment/) )
1. Apple에 `FPS Deployment Package` 신청 ( [https://developer.apple.com/streaming/fps/](https://developer.apple.com/streaming/fps/) )
1. `Deployment Package`를 이용해 생성한 다음 4가지 정보를 도브러너 콘솔 사이트의 `연동 설정`에 등록

```txt
- FPS Certificate 파일 (.der or .cer)
- Private key 파일 (.pem)
- Private key 암호 문자열
- Application secret key (ASK) 문자열
```

> **NOTE:**
>
> 위 등록 과정에 대한 상세한 설명은 [FairPlay 인증서 등록 자습서](/ko/content-security/multi-drm/license/fps-cert-tutorial/)를 참고하시기 바랍니다.

## 동영상 튜토리얼

FPS SDK를 iOS 앱에 적용하여 DRM 콘텐츠를 재생하는 튜토리얼 영상입니다.

<YouTubeEmbed videoId="8hGu_1HQ1NY" />

> 최적의 재생을 위해 화면 품질을 '1080p'로 선택하고 자막(한글 또는 영문)을 선택하여 재생하시기 바랍니다.

## 프로젝트 설정

다음과 같은 과정으로 도브러너 FPS SDK를 개발 프로젝트에 추가할 수 있습니다.

1. [Github 저장소](https://github.com/doverunner/fps-ios-sdk)에서 xcframework를 다운로드 받습니다.
2. `lib` 폴더에 포함된 `DoveRunnerFairPlay.xcframework` 라이브러리를 프로젝트에 추가합니다.
  - 프로젝트 TARGETS의 `General` 탭에 `Linked Frameworks and Libraries`에 프레임웍을 추가합니다. 
  - 프로젝트 TARGETS의 `Build Settings` 탭에 `Framework Search Paths` 프레임웍 경로를 넣습니다.

> - 'Advanced Sample'을 빌드하기 위해서는 [GoogleCast Framework](https://developers.google.com/cast/docs/developers#ios)가 필요합니다.
> - [COCOAPODS](https://cocoapods.org/)를 이용하여 GoogleCast.framework를 설치(pod install)하고, 생성된 `PallyConFPSAdvanced.xcworkspace`를 실행합니다.

## 퀵 스타트

도브러너 FPS SDK를 이용하여 FPS HLS 콘텐츠를 스트리밍 재생하거나 다운로드하는 방법은 아래 코드와 같습니다.

### 콘텐츠 재생

```swift
// 1. DoveRunnerFairPlay SDK 객체를 생성합니다.
let doverunnerSdk = DoveRunnerFairPlay()

let urlAsset = AVURLAsset(url: "Content Url(m3u8)")

// 2. FPS 콘텐츠를 재생하기 전에 Token 정보를 설정하여 라이선스 획득을 준비합니다.
let config = FairPlayConfiguration(avURLAsset: urlAsset, 
                                   contentId: "ContentID", 
                                   certificateUrl: "Certification URL",
                                   authData: "Token or CustomData")
doverunnerSdk.prepare(drm: config)

```

### 콘텐츠 다운로드

```swift
// 1. 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. FPS 콘텐츠 다운로드를 위해 DownloadTask 객체를 생성하고 라이선스 획득 준비를 합니다.
let downloadTask = doverunnerSdk.createDownloadTask(drm: config, 
                                         downloadDelegate:"FairPlayDownloadDelegate")

// 3. 콘텐츠 다운로드 시작
// 이전에 다운로드 중단된 콘텐츠일 경우, 해당 콘텐츠를 이어서 받습니다.
downloadTask.resume()

// 4. 콘텐츠 다운로드 취소 (필요 시)
downloadTask.cancel()
```


### 크롬캐스트 재생을 위한 CustomData 만들기

```swift
// 저희 SDK 는 크롬캐스트 재생을 지원합니다.
// 크롬캐스트 SDK 를 사용할 때 'GCKMediaInformation' 객체를 만들기 위해 필요한 JSON Data 가져오기
// CustomData 는 반드시 DoveRunnerFairPlay 객체를 사용해서 생성해야만 합니다.
let jsonData = doverunnerSdk.getJsonforChromecastPlayback(authData: "Token or CustomData")
```

## API 레퍼런스 문서

> 도브러너 FPS iOS SDK에서 제공하는 모든 API에 대한 설명은 SDK 파일에 포함된 API 레퍼런스 문서를 참고하시기 바랍니다.