Hive를 적용하는 방법은 여러분이 사용하는 게임 엔진이나 게임 앱이 구동되는 플랫폼이 무엇인지에 따라 다릅니다. 그렇지만 Hive에 대한 설정값은 공통적으로 hive_config.xml이라는 파일에 정의합니다. 이 파일은 여러분의 게임 프로젝트에 반드시 포함되어야 합니다. hive_config.xml을 이용하여 설정값을 쉽게 저장/변경할 수 있으며 게임이 실행된 이후에는 Hive가 제공하는 Configuration 클래스의 여러 메서드를 이용해 런타임의 설정값을 수정할 수도 있습니다.

설정 조회 및 변경

파일에 설정하기

Hive SDK의 설정 파일은 xml 기반으로 구성되어 있으며, Hive 클라이언트는 hive_config.xml 파일에 있는 값으로 초기화합니다. 앱 실행 중 변경되지 않는 정적인 항목은 모두 파일에서 설정하기를 권장합니다. 설정 파일 이름은 반드시 hive_config.xml이어야 하며 아래에 위치해야 합니다.

파일 저장 경로
  • iOS: <프로젝트_루트>/Assets/Plugins/iOS/
  • Android
         –   Unity 2021 이상: <프로젝트_루트>/Assets/HiveSDK/hive.androidlib/src/main/res/raw
         –   Unity 2021 미만: <프로젝트_루트>/Assets/Plugins/Android/res/raw/

  • 설정 가능 항목에서 요소별 설명과 권한을 확인할 수 있습니다.

    게임 실행 중 조회 및 변경하기

    파일을 이용한 설정 외에도 게임 실행 중 Hive 설정값을 조회하거나 변경할 수 있습니다. 이를 위해 Configuration 클래스에서는 Hive 설정값의 각 요소 이름 앞에 get이나 set을 붙인 메서드를 제공합니다. 예를 들어 게임 서버 값을 조회할 때는 getServerId() 메서드를, 변경할 때는 setServerId() 메서드를 이용할 수 있습니다. 게임 언어 값처럼 setGameLanguage() 메서드를 이용해 변경할 수는 있지만 조회할 메서드가 제공되지 않는 경우도 있습니다. 자세한 내용은 설정 가능 항목에서 요소별 get/set 권한을 확인하세요.

    게임 실행 중 Hive 설정을 변경해야 하는 경우는 다음과 같습니다.

    • Hive SDK 초기화 전
      Hive SDK를 초기화하기 전 게임 서버나 게임 언어를 Configuration 클래스의 API 설정에 반영합니다.
    • Hive SDK 초기화 후 서버 점검 팝업을 띄우기 전, 유저가 게임 서버를 선택하는 경우
      Hive SDK를 초기화한 뒤 게임 서버 선택 UI를 노출하고, 유저가 고른 게임 서버를 Hive 설정에 반영합니다. 이 과정을 실행한 후 서버 점검 팝업을 띄웁니다.
    • 게임 진입 후, 게임 설정에서 유저가 게임 언어 또는 게임 서버를 변경하는 경우
      게임을 플레이하는 도중에 게임 설정이나 다른 메뉴에서 게임 서버 또는 게임 언어 변경 UI를 구성할 수 있습니다. 유저가 해당 UI를 이용해 서버나 언어를 변경했다면 이 내용을 Configuration 클래스의 API 설정에도 반영해 주세요.

      • 게임 서버 선택 UI
      • 게임 언어 선택 UI
    • 그 외 게임 기획에 따라 게임 정보가 변경되는 경우
      위에 언급한 상황 외에도 Hive 설정값과 매칭하는 게임 정보가 변경되는 경우라면 Configuration 클래스의 API 설정에 항상 반영해야 합니다.

    예를 들어 파일에서 zone 필드 값을 sandbox로 설정했더라도, Configuration 클래스를 이용해 이 값을 real로 변경하고 SDK를 초기화하면 Hive는 real을 기준으로 동작합니다. hive_config.xml 파일의 zone 필드 값은 여전히 sandbox를 유지합니다.

    setZone 함수는 setup 함수를 호출하기 전에 호출해야 정상 작동합니다.

    다음은 유저의 zone 설정을 변경하는 예제 코드입니다.

    Unity®

    API Reference: hive.Configuration.setZone

    C++

    API Reference: hive::Configuration::setZone

    Android

    API Reference: Configuration.setZone

    iOS

    API Reference: HIVEConfiguration:setZone

     

    Hive 테마 설정

    hiveDark를 사용하여 어두운 테마를 노출 할 수 있습니다. 기본값은 hiveLight입니다.

    Unity®

    API Reference: hive.Configuration.setHiveTheme

    C++

    API Reference: hive::Configuration::setHiveTheme

    Android

    API Reference: Configuration.setHiveTheme

    iOS

    API Reference: HIVEConfiguration:setHiveTheme

    로그 타입 설정

    Logger.setLogFilter API를 사용하여 Hive 로그 타입을 설정할 수 있습니다. 아래 6가지 유형 중 LogType.Verbose이 기본 설정값입니다.

    • LogType.Verbose: 개발 단계 출력 로그
    • LogType.Debug: 전체 단계 상세 로그
    • LogType.Info: Hive SDK 진행 단계 및 결과 콜백 (권장)
    • LogType.Warning: 예기치 않은 상황이 발생했으나, 게임 실행에 영향이 없는 에러
    • LogType.Error: 설정 정보 누락 및 게임 실행에 영향을 주는 에러
    • LogType.None: 어떠한 로그도 출력하지 않음
    • 로그 타입 순서는 다음과 같이 높은 수준에서 낮은 수준으로 구분되며, 설정한 로그 타입보다 낮은 수준만 출력됩니다.
      • Verbose > Debug > Info > Waring > Error > None
    • Configuration 클래스의 useLogtrue로 설정하는 경우에만 해당 설정이 유효합니다.
    Unity®

    C++

    Java

    Kotlin

    Objective-C

    Swift

     

    설정 가능 항목

    요소 정보

    파일에서 관리할 수 있는 요소는 파란색으로 표시되어 있습니다. Configuration 클래스의 메서드로도 활용할 수 있는 요소는 사용하는 함수가 제공됩니다.

    요소 설명 함수
    appId 게임 빌드의 식별자입니다. 이 항목이 없으면 Android에서는 앱의 기본 패키지명을, iOS에서는 번들 ID를 사용합니다. get
    set
    serverId 게임에서 서버를 지역별로 분리 운영할 때 확인할 수 있는 각 게임 서버의 식별자입니다. Hive 식별자 정책에 따라 작성되어야 합니다. get
    set
    zone Hive 클라이언트가 접속할 서버입니다.

    • real: 운영 서버
    • sandbox: 테스트 서버
    get
    set
    useLog Hive 클라이언트의 내부 동작에 대한 로그 활성화 여부입니다.

    • true: 로그 활성화
    • false: 로그 비활성화
    get
    set
    ageGateU13 Hive SDK에서 COPPA 적용 여부입니다.

    • true: COPPA ageGateU13을 설정
    • false: COPPA ageGateU13을 설정하지 않음
    get
    set
    permissions

    권한 종류별로 설정하는 권한 요청 여부입니다. Android 전용 기능입니다.

    SDK v4.16.3부터 derpecated

    권한 종류 태그명
    외장 메모리 권한

    • <sdwrite>true</sdwrite> : 권한 요청 창 표시
    • <sdwrite>false</sdwrite> : 권한 요청 창 표시하지 않음
    sdwrite
    get
    set
    company 게임 퍼블리싱 업체입니다.

    • C2S: 컴투스 게임
    • GVI: 컴투스홀딩스 게임
    get
    set
    companyIndex 숫자로 표기한 게임 퍼블리싱 업체입니다. 등록된 companyIndex 값을 프로비저닝 서버와 통신으로 전달받은 후, 애널리틱스 로그로 전송합니다. 이 동작은 게임 스튜디오에서 설정할 필요가 없습니다.
    channel 게임 앱에서 사용하는 로그인 서비스 플랫폼입니다.

    • C2S: Hive 플랫폼 (기본값)
    get
    market 인앱 구매를 결제할 마켓입니다.

    • GO: Google Play Store
    • LE: Com2uS Lebi
    • AP: Apple App Store
    get
    httpConnectTimeout Hive 클라이언트 내부에서 사용하는 HTTP Connect의 타임아웃 시간(초)입니다. 기본 값은 8초로 설정되어 있으며 특수한 상황이 아닌 이상 값 변경을 금지합니다. get
    set
    httpReadTimeout Hive 클라이언트 내부에서 사용하는 HTTP Read 타임아웃 시간(초)입니다. 기본 값은 8초로 설정되어 있으며 특수한 상황이 아닌 이상 값 변경을 금지합니다. get
    set
    maxGameLogSize 비정형 데이터 파일로 저장하는 게임 로그의 최대 저장 개수입니다. Hive 애널리틱스 v2에서 이 값을 수집합니다. 기본 값은 50개로 설정되어 있으며 특수한 상황이 아닌 이상 값 변경을 금지합니다. get
    set
    providers 서드 파티 라이브러리에 대한 속성값을 지정합니다.
    facebook

    <providers>에 속하는 요소로, 인증 v4로 인증할 때 사용하는 Facebook 관련 설정을 정의합니다. (+4.14.0)

    Facebook SDK를 사용할 때 Hive SDK에서 기본으로 설정하는 email 권한(Facebook 계정 이메일 주소 접근)과 public_profile(Facebook 공개 프로필 접근) 권한 외에 추가 권한이 필요하다면, Facebook 콘솔에서 해당 권한을 요청한 후 hive_config.xml 요소로 추가해야 합니다. 아래 예시를 참고하세요.

    google <providers>에 속하는 요소로, 인증 v4로 인증할 때 사용하는 Google 관련 설정을 추가합니다. (+4.14.0)
    wechat <providers>에 속하는 요소로, 인증 v4로 인증할 때 사용하는 WeChat 관련 설정을 추가합니다. (+4.14.0)
    qq <providers>에 속하는 요소로, 인증 v4로 인증할 때 사용하는 QQ 관련 설정을 추가합니다. (+4.14.0)
    vk <providers>에 속하는 요소로, 인증 v4로 인증할 때 사용하는 VK 관련 설정을 추가합니다. (+4.14.0)
    line <providers>에 속하는 요소로, 인증 v4로 인증할 때 사용하는 LINE 관련 설정을 추가합니다. (+4.14.0)
    weverse <providers>에 속하는 요소로, 인증 v4로 인증할 때 사용하는 Weverse 관련 설정을 추가합니다. (+4.15.2)
    signinwithapple <providers>에 속하는 요소로, 인증 v4로 인증할 때 사용하는 Sign in with Apple 관련 설정을 추가합니다. (Android에서 Apple 계정으로 로그인할 때 사용합니다.) (+4.15.6)
    Adjust <providers>에 속하는 요소로, 마켓 성과 측정 도구 Adjust를 사용하기 위한 관련 설정을 추가합니다. (+4.14.0)
    Singular <providers>에 속하는 요소로, 마켓 성과 측정 도구 Singular를 사용하기 위한 관련 설정을 추가합니다. (+4.14.0)
    AppsFlyer <providers>에 속하는 요소로, 마켓 성과 측정 도구 AppsFlyer를 사용하기 위한 관련 설정을 추가합니다. (+4.14.0)
    Firebase <providers>에 속하는 요소로, 마켓 성과 측정 도구 Firebase Analytics를 사용하기 위한 관련 설정을 추가합니다. (+4.16.1)
    trackers 서드 파티 어트리뷰션에 대한 설정 모음입니다. (SDK 4.14.0부터 deprecated)
    tracker <trackers>에 속하는 요소로, 서드 파티 어트리뷰션 각각에 대한 설정을 정의합니다. (SDK 4.14.0부터 deprecated)
    qqAppId 인증 v4를 사용하는 게임에서 QQ 로그인 시 필요한 QQ AppID 값입니다. (+v4.5.0) (SDK 4.14.0부터 deprecated)
    vkAppId 인증 v4를 사용하는 게임에서 VK 로그인 시 필요한 VK AppID 값입니다. (+v4.6.0) (SDK 4.14.0부터 deprecated)
    wechatAppId 인증 v4를 사용하는 게임에서 WeChat 로그인 시 필요한 WeChat AppID 값입니다. (+v4.6.0) (SDK 4.14.0부터 deprecated)
    wechatAppSecret 인증 v4를 사용하는 게임에서 WeChat 로그인 시 필요한 WeChat App Secret 값입니다. (+v4.6.0) (SDK 4.14.0부터 deprecated)
    wechatPaymentKey WeChat 결제 시 사용하는 WeChat Payment Key 값입니다. (+v4.7.0) (SDK 4.14.0부터 deprecated)
    facebookPermissions Facebook 로그인 시 요청하는 추가 권한입니다. (+v4.5.4, v4.6.3, v4.7.2, v4.8.1, v4.9.0)
    key(facebookPermissions)를 추가하지 않는 경우:

  • 인증 v1: public_profile, email, user_friends
  • 인증 v4: public_profile, email
  • value 없이 key만 추가하는 경우:

  • 인증 v1: public_profile, email
  • 인증 v4: public_profile, email
  • key와 value를 추가하는 경우:

  • 인증 v1: public_profile, email, 추가 권한(permission)
  • 인증 v4: public_profile, email, 추가 권한(permission)
  • (SDK 4.14.0부터 deprecated)

    exitEventEnabled exitEvent란 Hive SDK가 아니라 게임에서 앱을 직접 종료해야 하는 상황임을 알리는 이벤트입니다. 이 값이 True이면 이 이벤트룰 수신하며 이 때 Hive SDK는 게임 앱을 직접 종료하지 않습니다. 이 값이 False이면 Hive SDK가 게임 앱을 직접 종료할 수 있습니다.(+v4.9.0) (SDK 4.16.4부터 deprecated).
    analyticsSendLimit 로그 전송 주기마다 전송할 로그의 최대치입니다. 기본 값은 5로 설정되어 있습니다. (+v4.11.0) get
    set
    analyticsQueueLimit 쌓을 수 있는 로그의 최대치입니다. 기본 값은 50으로 설정되어 있습니다. (+v4.11.0) get
    set
    analyticsSendCycle 로그 전송 주기입니다. 초로 설정 가능하며 설정한 주기마다 애널리틱스 로그를 전송합니다. 기본 값 1초입니다. (+v4.11.0) get
    set
    useCrashReport

    iOS 전용 기능으로 앱이 에러로 인하여 강제 종료(크래시) 발생하기 직전의 상황을 감지하여 서버 미전송 대기중인 Hive 애널리틱스 로그를 파일로 저장합니다. 비슷한 기능을 하는 외부 서드 파티 크래시 리포터를 이용할 경우 충돌 방지를 위해 false로 설정하여 비활성화 해야 합니다.(+v4.16.0)

    (SDK v4.16.3 부터 derpecated)

    saveAnalyticsLogBeforeCrash iOS 전용 기능으로, 앱이 NSException 타입 에러 또는 Unix singal 타입 에러 때문에 강제 종료되기 직전 상황을 감지하여 서버에 전송하지 않고 대기중인 Hive 애널리틱스 로그를 파일로 저장합니다. 외부 서드 파티 크래시 리포터를 이용할 경우 충돌 방지를 위해 false로 설정하여 비활성화 해야 합니다. 4.16.3 미만에서 사용되었던 useCrashReport 값은 saveAnalyticsLogBeforeCrash 값으로 사용됩니다. (+v4.16.3)
    googleClientId iOS에서 Google 로그인 시 필요한 iOS – Google Client ID 값입니다.
    (인증 v1: v4.5.0+, 인증 v4: v4.11.0+)
    (SDK 4.14.0부터 deprecated)
    googleServerClientId 인증 v4를 사용하는 게임에서 Google Play 게임 로그인 시 필요한 웹 애플리케이션의 Client ID입니다. (Android: v4.5.0+, iOS: v4.11.0+) (SDK 4.14.0부터 deprecated)
    hiveSDKVersion Hive SDK 버전입니다. get
    referenceSDKVersion Hive SDK가 참조하는 SDK 버전입니다. get
    gameLanguage Hive SDK에 설정하는 게임 언어입니다. set
    hiveCountry Hive SDK 서버에서 판단한 국가 코드입니다. get
    hivePermissionViewOn Hive SDK 권한고지 팝업 노출 여부입니다. (+4.12.1)

    • true: 노출
    • false: 노출 안 함
    set

    hive_config.xml 예제