1. 다운로드 준비
SDK 초기화 및 인증, 시작 메서드(start) 선택, 백그라운드 다운로드 설정, 디바이스 가용 용량 체크 등 콘텐츠 다운로드를 위한 준비 단계에 대해 설명합니다.
이 문서의 모든 예제 코드는 공식 샘플 앱인 kollus_player_ios를 바탕으로 작성되었습니다.
KollusStorage 초기화
샘플 애플리케이션은 SDK 인증 및 관리를 위해 StorageManager 클래스를 구현하여 사용합니다.
개발 프로젝트 연동 시에도 이와 동일한 구조적 패턴 구성을 권장합니다.
import UIKit
// import KollusSDK (또는 Bridging Header에서 노출)
class StorageManager: NSObject {
static let shared = StorageManager()
let storage: KollusStorage
override init() {
storage = KollusStorage()
super.init()
storage.applicationKey = "SDK_KEY" // 카테노이드에서 발급받은 SDK 키
storage.applicationBundleID = "com.yourcompany.yourapp" // 앱의 Bundle ID
// 인증 만료일 설정
let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd"
formatter.calendar = Calendar(identifier: .gregorian)
storage.applicationExpireDate = formatter.date(from: "2030/12/31")
// (선택사항) 키체인 그룹: 다중 앱 또는 확장 앱과 데이터 공유 시 사용
// storage.keychainGroup = "com.yourcompany.shared"
// (선택사항) 동적 DRM 파라미터 설정
// storage.extraDrmParam = "..."
}
public func validateSDK() {
do {
try storage.start()
storage.setBackgroundDownload(true)
} catch {
// (error as NSError).code 값으로 에러 상황 분류
print(error.localizedDescription)
}
}
}
시작 메서드 선택
일반적인 환경에서는 start() 또는 startWithCheck() 메서드를 사용합니다.
playerID 분실에 따른 복구가 필요한 경우 startWithNewPlayerID() 메서드를 사용할 수 있습니다.
| 메서드 | 동작 |
|---|---|
start() | 일반적인 환경에서 엔진을 시작합니다. |
start(withFirst: Bool) | 애플리케이션 설치 후 최초 실행 플래그를 명시적으로 전달하여 시작합니다. |
startWithCheck() | 키체인에서 playerID 획득에 실패하는 경우 자동 생성 및 재시도를 수행합니다. 최초 실행 시 새로 생성하며, 이후 실행 단계에서 3회 이상 실패하면 에러를 반환합니다. |
startWithNewPlayerID() | playerID를 강제로 새로 생성한 후 시스템 키체인에 등록하여 시작합니다. |