iOS 설정 set-up-ios

iOS 디바이스를 위한 스트리밍 미디어용 Analytics을 설정하는 방법에 대해 알아봅니다.

IMPORTANT
2021년 8월 31일에 버전 4 Mobile SDK에 대한 지원이 종료됨에 따라 Adobe는 iOS 및 Android용 Media Analytics SDK에 대한 지원도 종료할 예정입니다. 자세한 내용은 Media Analytics SDK 지원 종료 FAQ를 참조하십시오.

사전 요구 사항

  • Media SDK에 대한 올바른 구성 매개 변수 가져오기
    이러한 매개 변수는 분석 계정을 설정한 후 Adobe 담당자에게서 얻을 수 있습니다.

  • 애플리케이션에 iOS용 ADBMobile 구현
    Adobe Mobile SDK 설명서에 대한 자세한 내용은 Experience Cloud 솔루션용 iOS SDK 4.x를 참조하십시오.

    note important
    IMPORTANT
    Apple은 iOS 9부터 ATS(앱 전송 보안)라는 기능을 도입했습니다. 이 기능은 앱에서 업계 표준 프로토콜과 암호만 사용하도록 함으로써 네트워크 보안을 개선하는 것을 목표로 합니다. 이 기능은 기본적으로 활성화되어 있지만 ATS 작업 옵션을 제공하는 구성 옵션이 있습니다. ATS에 대한 자세한 내용은 앱 전송 보안을 참조하십시오.
  • 미디어 플레이어에서 다음 기능 제공:

    • 플레이어 이벤트에 가입할 API - Media SDK를 사용하려면 이벤트가 플레이어에서 발생할 때 단순 API 세트를 호출해야 합니다.
    • 플레이어 정보를 제공하는 API - 이 정보에는 미디어 이름 및 재생 헤드 위치와 같은 세부 정보가 포함됩니다.

SDK 구현

IMPORTANT
버전 2.3.0부터 SDK는 XCFrameworks를 통해 배포됩니다.
SDK 버전 2.3.0에는 Xcode 12.0 이상이 필요하며, 해당되는 경우 Cocoapods 1.10.0 이상이 필요합니다.
  • 바이너리 라이브러리 파일이 언급될 때마다 대신 해당 XCFramework 대체 파일을 사용해야 합니다.

    • MediaSDK.a > MediaSDK.xcframework
    • MediaSDK_TV.a > MediaSDKTV.xcframework
  • Adobe XCFrameworks를 프로젝트에 수동으로 추가하는 경우 XCFrameworks가 임베드되지 않았는지 확인합니다.

  1. 다운로드한 Media SDK를 프로젝트에 추가합니다.

    1. 다음 소프트웨어 구성 요소가 libs 디렉토리에 있는지 확인합니다.

      • ADBMediaHeartbeat.h: iOS 하트비트 추적 API에 사용되는 Objective-C 헤더 파일입니다.

      • ADBMediaHeartbeatConfig.h: SDK 구성에 대한 Objective-C 헤더 파일입니다.

      • MediaSDK.a: iOS 장치(armv7, armv7s, arm64)와 시뮬레이터(i386 and x86_64)의 라이브러리 빌드가 포함된 비트코드 사용 패트 바이너리입니다.

        iOS 앱이 타겟인 경우 이 바이너리를 연결해야 합니다.

      • MediaSDK_TV.a: 새 Apple TV 장치(arm64)와 시뮬레이터(x86_64)의 라이브러리 빌드가 포함된 비트코드 사용 패트 바이너리입니다.

        Apple TV(tvOS) 앱이 타겟인 경우 이 바이너리를 연결해야 합니다.

    2. 라이브러리를 프로젝트에 추가합니다:

      1. Xcode IDE를 실행하고 앱을 엽니다.

      2. 프로젝트 탐색기 ​에서 libs 디렉토리를 드래그하여 프로젝트 아래에 놓습니다.

      3. 필요한 경우 항목 복사 확인란과 그룹 만들기 ​를 선택해야 하고 타겟에 추가​ 의 확인란은 아무것도 선택하면 안 됩니다.

      옵션 선택

      1. 마침을 클릭합니다.

      2. 앱을 프로젝트 탐색기 ​에서 선택하고 타겟을 선택합니다.

      3. 일반 탭의 연결된 프레임워크라이브러리 섹션에서 필요한 프레임워크 및 라이브러리를 연결합니다.

        iOS 앱 타겟:

        • AdobeMobileLibrary.a
        • MediaSDK.a
        • libsqlite3.0.tbd

        Apple TV(tvOS) 타겟:

        • AdobeMobileLibrary_TV.a
        • MediaSDK_TV.a
        • libsqlite3.0.tbd
        • SystemConfiguration.framework
      4. 오류 없이 앱이 빌드되는지 확인합니다.

  2. 라이브러리를 가져옵니다.

    code language-none
    #import "ADBMediaHeartbeat.h"
    #import "ADBMediaHeartbeatConfig.h"
    
  3. ADBMediaHeartbeatConfig 인스턴스를 만듭니다.

    이 섹션은 MediaHeartbeat 구성 매개 변수를 이해하고, 정확한 추적을 위해 MediaHeartbeat 인스턴스에 올바른 구성 값을 설정하는 데 도움을 줍니다.

    다음은 샘플 ADBMediaHeartbeatConfig 초기화입니다.

    code language-none
    // Media Heartbeat Initialization
    ADBMediaHeartbeatConfig *config = [[ADBMediaHeartbeatConfig alloc] init];
    config.trackingServer = <SAMPLE_HEARTBEAT_TRACKING_SERVER>;
    config.channel        = <SAMPLE_HEARTBEAT_CHANNEL>;
    config.appVersion     = <SAMPLE_HEARTBEAT_SDK_VERSION>;
    config.ovp            = <SAMPLE_HEARTBEAT_OVP_NAME>;
    config.playerName     = <SAMPLE_PLAYER_NAME>;
    config.ssl            = <YES/NO>;
    config.debugLogging   = <YES/NO>;
    
  4. ADBMediaHeartbeatDelegate 프로토콜을 구현합니다.

    code language-none
    @interface VideoAnalyticsProvider : NSObject <ADBMediaHeartbeatDelegate>
    
    @end
    
    @implementation VideoAnalyticsProvider
    
    // Replace <bitrate>, <startuptime>, <fps> and <droppeFrames>
    // with the current playback QoS values.
    - (ADBMediaObject *)getQoSObject {
        return [ADBMediaHeartbeat createQoSObjectWithBitrate:<bitrate>
                                  startupTime:<startuptime>
                                  fps:<fps>
                                  droppedFrames:<droppedFrames>];
    }
    
    // Return the current video player playhead position.
    // Replace <currentPlaybackTime> with the video player current playback time
    - (NSTimeInterval)getCurrentPlaybackTime {
        return <currentPlaybackTime>;
    }
    
    @end
    
  5. ADBMediaHeartBeatConfigADBMediaHeartBeatDelegate를 사용하여 ADBMediaHeartbeat 인스턴스를 생성합니다.

    code language-none
    //Replace <ADBMediaHeartBeatDelegate> with your delegate instance
    _mediaHeartbeat = [[ADBMediaHeartbeat alloc] initWithDelegate:
      <ADBMediaHeartBeatDelegate> config:config];
    
    note important
    IMPORTANT
    ADBMediaHeartbeat 인스턴스가 액세스할 수 있는지 그리고 세션이 끝날 때까지 이 인스턴스에 대한 할당이 취소되지 않는지 확인하십시오. 이 인스턴스는 다음의 모든 추적 이벤트에 사용됩니다.

iOS에서 버전 1.x에서 2.x로 마이그레이션 migrate-to-two-x

버전 2.x에서 모든 공개 메서드는 개발자가 쉽게 만들 수 있도록 ADBMediaHeartbeat 클래스에 통합되어 있습니다. 모든 구성은 ADBMediaHeartbeatConfig 클래스에 통합되었습니다.

1.x에서 2.x로의 마이그레이션에 대한 자세한 내용은 이전 구현 설명서를 참조하십시오.

tvOS용 기본 앱 구성

이제 새로운 Apple TV 릴리스로 기본 tvOS 환경에서 실행할 애플리케이션을 만들 수 있습니다. iOS에서 사용 가능한 여러 프레임워크를 사용하여 완전히 기본적인 앱을 만들거나 XML 템플릿 및 JavaScript를 사용하여 앱을 만들 수 있습니다. MediaSDK 버전 2.0부터 tvOS에 대한 지원을 이용할 수 있습니다. tvOS에 대한 자세한 내용은 tvOS 개발자 사이트를 참조하십시오.

Xcode 프로젝트에서 다음 단계를 수행하십시오. 이 안내서는 프로젝트에 tvOS를 타깃팅하는 Apple TV 앱이 있다고 가정하고 작성되었습니다.

  1. 프로젝트의 lib 폴더로 VideoHeartbeat_TV.a 라이브러리 파일을 드래그합니다.

  2. tvOS 앱 대상의 빌드 단계 탭에서 라이브러리로 이진 링크 섹션을 확장하고 다음 라이브러리를 추가합니다.

    • MediaSDK_TV.a
    • AdobeMobileLibrary_TV.a
    • libsqlite3.0.tbd
    • SystemConfiguration.framework
recommendation-more-help
c8eee520-cef5-4f8c-a38a-d4952cfae4eb