Unreal Engine SDK

1. Unreal Engine 대응 버전

본SDK은Unreal Engine 4.10〜4.22의 환경에서 동작합니다.

Android플랫폼의 경우
※ Android 2.3이상

iOS플랫폼의 경우
※ iOS 6.1이상
※ 리모트 빌드는 Unreal Engine 4.20 및 4.22에서 동작하는 것을 확인하였습니다.

2. Unreal Engine의Project에SDK적용 방법

Step1:SmartBeat플러그인 추가

아래에서 SmartBeat SDK를 다운로드하십시오.

SmartBeat-UE4.zip압축을 푼 후SmartBeat폴더를 빼내어 프로젝트의Plugins폴더(Plugins폴더가 없는 경우에 작성)에 복사하여 주세요.

위의 순서로 진행 후 Unreal Editor에서 프로젝트를 열면,첫 회만 아래와 같이 플러그인의 빌드를 추가하는 다이얼로그가 표시되며,「Yes」를 선택하여 빌드를 진행하여 주세요.

C++를 포함하지 않고 Blueprint만으로 구성되어 있는 프로젝트의 경우에는 그대로 플러그인의 빌드가 실행되지 않기 때문에 Unreal Editor의 메뉴로 부터 File > New C++ Class...을 선택하여 C++클래스를 추가해주세요. 추가하는 클래스의 종류는 None , 이름은 디폴트값 그대로 괜찮습니다. C++클래스를 추가한 뒤에 프로젝트를 다시 열어주세요.
※처음부터C+를 포함한 프로젝트의 경우에는 C+클래스의 추가는 필요 없습니다.

Step2:API키 설정

Unreal Editor에서 툴바의Settings > Project Settings...에서 Project Settings를 열어주세요.

Plugins - SmartBeat의 페이지의 IOS/Android의 항목 아래에API Key의 항목이 있고 SmartBeat Console로부터 취득한API키를 설정하여 주세요.

Step3(Android):중복 유저 카운트 방지

특별한 설정 사항은 없습니다.
※ UnrealEngine에서 GooglePlayService가 이미 읽어 들여져 있어 상시적으로 유효화 되어 있습니다.
※ 본 기능은 Google Play services 4.0이후 버젼이 설치된 단말을 사용하는 유저 카운트에만 유효합니다. (그 외의 유저는 기존대로 카운트됩니다.)

Step4(Android):SIGNAL 가져오기 활성화

SIGNAL 가져오기를 활성화하는 경우, 아래와 같이 Unreal Engine 소스 코드(Engine/Source/Runtime/Core/Private/Android/AndroidMisc.cpp)를 수정하세요.

const int32 TargetSignals[] =
{
    SIGQUIT, // SIGQUIT is a user-initiated "crash".
    //SmartBeat에서 오류를 가져오기 위해 주석 처리
    //SIGILL,
    //SIGFPE,
    //SIGBUS,
    //SIGSEGV,
    SIGSYS
};

Step3(iOS):중복 유저 카운트 방지

※ 이 항목은iOS용 Unreal Engine프로젝트에 적용이 필요한 항목입니다.

유저수 집계에 IDFA를 사용함으로 동일한 유저의 중복 카운트를 방지합니다. 따라서 App의 재설치를 반복하는 경우에도 불필요한 MAU(Monthly Active Users)수의 증가를 막을 수 있습니다.

※ 중복된 유저의 카운트를 막는 설정을 유효화하는 것으로 오디언스 기능도 유효화 됩니다.
※ 본 기능은 iOS 6.0이후 버젼을 이용하는 유저 카운트에만 유효합니다.

본 기능을 유효로 하지 않는 경우에는 아래의 순서가 불필요합니다.

linker 옵션의 추가

Project Settings의Platforms - iOS의 페이지를 열어서「Additional Shipping Linker Flags」의 항목에 아래 내용을 추가하여 주세요.

-force_load "/프로젝트 패스/Plugins/SmartBeat/Lib/IOS/libSmartBeatIdfa.a"


※ Unreal Engine 4.10에서는Additional Shipping Linker Flags가 정상적인 기능을 하지 않기 때문에, 위와 같은 설정을 해도 중복 유저 카운트 방지는 유효화가 되지 않습니다.

Step4(iOS):UE 4.21 이후 버전의 원격 빌드 설정

※ 이 항목은 Windows에서 UE 4.21 이후 버전을 사용하여, iOS용으로 원격 빌드하는 데 필요한 항목입니다.

"/프로젝트 경로/Build/Rsync/RsyncProject.txt"라는 파일을 작성하여 아래 내용을 입력하여 주십시오.

+ Plugins/SmartBeat/Lib/IOS/**

3. 옵션 기능

3.1 LogCat/NSLog 출력

네이티브 레이어(iOS는Objective-C및C++,Android는Java및C++)로 크래쉬가 발생한 경우에는 네이티브 레이어에서 출력된 로그를 크래쉬 데이터와 함께 SmartBeat서버에 송신합니다.
※ 64KB 미만일 경우에는 최대 500행、그 외의 경우에는 64KB까지 최신 로그를 취득합니다.
※ Blueprint레이어에서 발생한 에러에 대해서는 LogCat/NSLog가 포함되어 있지 않습니다.
※ iOS 10.0 이후에서는 이 기능을 유효화 하더라도 NSLog를 크래시 데이터에 포함시킬 수 없습니다.

유효화 방법

Project Settings의 Plugins - SmartBeat의 페이지에서「Enable NSLog」(iOS의 경우)또는「Enable Logcat」(Android의 경우)을 유효화 하여 주세요.

3.2 로그 출력

Blueprint레이어에서 로그를 보존하고 크래쉬 데이터와 함께 SmartBeat서버에 송신합니다.
※ 64KB 미만일 경우에는 최대 500행、그 외의 경우에는 64KB까지 최신 로그를 취득합니다.

유효화 방법

Blueprint의Graph Editor에서 컨텍스트 메뉴를 열어서 SmartBeat > Log for SmartBeat을 선택하여 노드를 추가하여 주세요.

노드의「Message」에 로그 메시지를 설정하여 주세요.

3.3 유저 ID 설정

대상의 App이 관리하는 유저를 식별할 ID가 이미 있는 경우、그것을 설정할 수 있습니다.
설정 된 유저ID는 Crash와 함께 SmartBeat서버에 보내집니다.
어떤 유저로 Crash가 발생 되었는지 등 관리 콘솔 상에서 확인 가능합니다.

유효화 방법

Blueprint의Graph Editor에서 컨텍스트 메뉴를 열어서 SmartBeat > Set User ID for SmartBeat를 선택하고 노드를 추가하여 주세요.

노드의「User ID」에 유저ID를 설정하여 주세요.

3.4 확장 정보

Crash 정보에 확장 정보를 부혀할 수 있습니다. App에 따라서는 유저가 설정한 정보와 App이 내부에 보유하고 있는 정보가 Crash해석에 도움이 됩니다.

유효화 방법

Blueprint의Graph Editor에서 컨텍스트 메뉴를 열어서 SmartBeat > Add Extra Data for SmartBeat를 선택하고 노드를 추가하여 주세요.

노드의「key」와「Value」에 임의의 키네임 과 값의 세팅을 설정하여 주세요.

값을 변경하고 싶을 경우에는 같은 키 이름으로 추가하면 새로운 값으로 덮어씌워 집니다.

3.5 breadcrumb기능

임의의 포인트로 breadcrumb를 남기면 에러가 발생할 때까지 사용자가 조작한 내용과 화면 이동내역을 수집할 수 있습니다.

유효화 방법

Blueprint의Graph Editor에서 컨텍스트 메뉴를 열어서 SmartBeat > Leave Breadcrumb for SmartBeat를 선택하고 노드를 추가하여 주세요.

노드의「Breadcrumb」에 브레드크럼을 설정하여 주세요.

breadcrumb는 마지막에 기록되어진 것을 포함하여 최대 16개까지 보존할 수 있습니다.
※Unreal Engine SDK 1.2.5 이상, iOS에서만 최대 128개
※Unreal Engine SDK 1.2.5 이상, iOS에서만, 일반 동작과 상태 변경 사항을 자동으로 브레드크럼으로 기록합니다. 자동 기록 대상은 이곳을 참조하세요.
예를 들면, [맵 화면]→[게임 화면]→[설정 화면]등과, 키가 되는 화면의 이동 시점에
남길 경우, 에러 직전에 사용자가 어떻게 화면을 이동했는지 알 수 있습니다.

3.6 에러 수집 유효・무효 변경

초기상태에서 에러수집을 무효로 하고 도중에 에러수집을 유효화하고 싶을 때 이용이 가능합니다

유효화 방법

Project Settings의Plugins - SmartBeat의 페이지에서「Disable at Startup」을 설정하여 기동시에 유효로 할지 무효로 할지 설정하여 주세요.

이 후 유효화하는 경우에는 Blueprint의Graph Editor에서 컨텍스트 메뉴를 열어서 SmartBeat > Enable SmartBeat를 선택하고 임의의 개소에 노드를 추가하여 주세요. Enable SmartBeat가 실행 된 이후 발생한 에러를 수집합니다.

3.7 오디언스 기능

유저 식별자로서 Advertising ID for Android 또는 IDFA for iOS를 사용하여
애플리케이션을 이용하는 유저의 남여비와 연령분포를 확인할 수 있습니다.

유효화 방법

중복된 유저의 카운트를 막는 설정을 유효화하는 것으로 오디언스 기능도 유효화 됩니다.
중복된 유저의 카운트를 막는 설정에 대해서는 여기(Android)/(iOS)를 참조해 주세요.

4. 개정 이력

개정일 변경 사항
2018년 2월 1일 초판 릴리즈
2019년 5월 31일 [1. Unreal Engine 대응 버전]을 변경
2019년 10월 29일 [3.5 breadcrumb기능]을 변경