콘텐츠로 이동

Configuration 클래스

Configuration 클래스를 사용하면 앱 실행 중에 설정값을 조회(get)하거나 변경(set)할 수 있습니다. 예를 들어, 앱 서버 정보를 조회할 때는 getServerId() 메서드를, 변경할 때는 setServerId() 메서드를 사용합니다.

Configuration 클래스를 사용하는 한 예시로, 앱 실행중에 유저의 zone 설정을 Configuration 클래스로 변경할 수 있습니다.

API Reference: hive.Configuration.setZone

using hive;  

Configuration.setZone(ZoneType.REAL);

API Reference: hive::Configuration::setZone

#include <HIVE_SDK_Plugin/HIVE_CPP.h>    
using namespace std;    
using namespace hive;      

Configuration::setZone(ZoneType::REAL);

API Reference: Configuration.setZone

import com.hive.Configuration    

Configuration.zone = Configuration.ZoneType.REAL

API Reference: Configuration.setZone

import com.hive.Configuration;    

Configuration.INSTANCE.setZone(Configuration.ZoneType.REAL);

API Reference: ConfigurationInterface.setZone

import HIVEService    

ConfigurationInterface.setZone(.real)

API Reference: HIVEConfiguration:setZone

#import <HIVEService/HIVEService-Swift.h>    

[HIVEConfiguration setZone: HIVEZoneTypeReal];
Note

Configuration 클래스 setZone 메서드는 setup 함수를 호출하기 전에 호출해야 정상 작동합니다.

Configuration 클래스 사용 상황

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

Hive SDK 초기화 전

Hive SDK를 초기화하기 전 게임 서버나 게임 언어를 설정에 반영합니다.

Hive SDK 초기화 후 ~ 서버 점검 팝업 이전

Hive SDK 초기화 후 서버 점검 팝업을 띄우기 전 사용자가 게임 서버를 선택하는 경우입니다. Hive SDK를 초기화한 뒤 게임 서버 선택 UI를 노출하고, 사용자가 고른 게임 서버를 설정에 반영합니다. 이 과정을 실행한 후 서버 점검 팝업을 띄웁니다.

예시: 게임 서버 선택 UI

게임 진입 후

게임 진입 후 게임 설정에서 유저가 게임 언어 또는 게임 서버를 변경하는 경우, 게임을 플레이하는 도중에 게임 설정이나 다른 메뉴에서 게임 서버 또는 게임 언어 변경 UI를 구성할 수 있습니다. 사용자가 해당 UI를 이용해 서버나 언어를 변경했다면 이 내용을 설정에도 반영해야 합니다.

예시: 게임 언어 선택 UI

기타 상황

게임 기획 등 기타 상황에 따라 게임 정보가 변경되는 경우 등 여러가지 상황으로 기존에 설정했던 값을 변경합니다.

Note

값을 변경할 수는 있지만 조회를 할 수 없는 항목도 있습니다.

Configuration 클래스 사용 예시

Configuration 클래스를 사용하는 예시를 추가로 안내합니다.

Hive 테마 설정

Configuration.setHiveTheme을 사용하여 어두운 테마를 노출 할 수 있습니다.

API Reference: hive.Configuration.setHiveTheme

using hive;

Configuration.setHiveTheme(HiveThemeType.hiveLight);
Configuration.setHiveTheme(HiveThemeType.hiveDark);

API Reference: hive::Configuration::setHiveTheme

#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace std;
using namespace hive;

Configuration::setHiveTheme(HiveThemeType::hiveLight);
Configuration::setHiveTheme(HiveThemeType::hiveDark);

API Reference: hiveTheme

import com.hive.Configuration

Configuration.hiveTheme = HiveTheme.hiveLight
Configuration.hiveTheme = HiveTheme.hiveDark

API Reference: Configuration.setHiveTheme

import com.hive.Configuration;

Configuration.INSTANCE.setHiveTheme(Configuration.HiveTheme.HiveLight);
Configuration.INSTANCE.setHiveTheme(Configuration.HiveTheme.HiveDark);

API Reference: HIVEConfiguration:setHiveTheme

#import <HIVEService/HIVEService-Swift.h>

[HIVEConfiguration setHiveTheme: HIVEThemeTypeHiveLight];
[HIVEConfiguration setHiveTheme: HIVEThemeTypeHiveDark];

API Reference: HIVEConfiguration:setHiveTheme

import HIVEService

ConfigurationInterface.setHiveTheme(.hiveLight)
ConfigurationInterface.setHiveTheme(.hiveDark)

Configuration 클래스와 hive_config.xml 파일

Configuration 클래스에 있는 메서드들로 설정을 변경하면 hive_config.xml에 설정된 값을 덮어씁니다. 즉, Configuration 클래스로 설정한 값이 우선 순위가 더 높습니다. 단, Hive SDK 내부에서 Configuration 클래스로 설정한 값을 우선으로 사용하는 것이며, hive_config.xml 파일에 있는 기존 값이 변경되지는 않습니다.

예를 들어, 위 zone 설정에서 hive_config.xmlzonesandbox로 설정했어도, Configuration 클래스로 이 값을 real로 변경한 후 Hive SDK를 초기화하면, Hive SDK는 real을 기준으로 동작합니다. 하지만, hive_config.xml에 있는 zone은 여전히 sandbox로 남아있습니다.

Configuration 클래스로 조회만 가능한 설정

Configuration 클래스 메서드로 값 조회(get) 가능한 설정 항목들은 아래와 같습니다.

항목 설명
hiveSDKVersion Hive SDK 버전입니다.
referenceSDKVersion Hive SDK가 참조하는 SDK 버전입니다.
hiveCountry Hive SDK 서버에서 판단한 국가 코드입니다.

Configuration 클래스로 변경 가능한 설정

Configuration 클래스 메서드로 값 변경(set)이 가능한 항목들은 아래와 같습니다. 앱을 빌드하기 전에 hive_config.xml에 사전 설정하는 Hive SDK 공통 설정 항목들과 동일한 항목들입니다. 필수 항목은 반드시 입력해야 하며, 선택 항목은 필요에 따라 입력합니다. 선택 항목을 입력하지 않으면 Hive SDK 기본값으로 동작합니다.

항목 설명 필수 여부 SDK 기본값
appId 게임 빌드 식별자입니다. X Android: 앱 기본 패키지명, iOS: 번들 ID
serverId 게임에서 서버를 지역별로 분리 운영할 때 확인할 수 있는 각 게임 서버 식별자입니다. Hive 식별자 정책에 따라 작성되어야 합니다. O 공백
zone Hive 클라이언트가 접속할 서버입니다.
  • real: 운영 서버
  • sandbox: 테스트 서버
X `REAL`
useLog Hive 클라이언트의 내부 동작에 대한 로그 활성화 여부입니다. 로그를 활성화하면 개발 도구 화면에 로그를 출력합니다.
  • true: 로그 활성화
  • false: 로그 비활성화
X `false`
company 게임 퍼블리싱 업체입니다.
  • C2S: 컴투스 게임
  • GVI: 컴투스홀딩스 게임
O 공백
channel 게임 앱에서 사용하는 로그인 서비스 플랫폼입니다. C2S: Hive 플랫폼 (기본값) O `C2S`
market 인앱 구매를 결제할 마켓입니다.
  • GO: Google Play Store
  • LE: Com2uS Lebi
  • AP: Apple App Store
O 공백
httpConnectTimeout Hive 클라이언트 내부에서 사용하는 HTTP Connect의 타임아웃 시간(초)입니다. 기본 값은 8초로 설정되어 있으며 특수한 상황이 아닌 이상 값 변경을 금지합니다. X `8`(단위: 초)
httpReadTimeout Hive 클라이언트 내부에서 사용하는 HTTP Read 타임아웃 시간(초)입니다. 기본값은 8초로 설정되어 있으며 특수한 상황이 아닌 이상 값 변경을 금지합니다. X `8`(단위: 초)
gameLanguage Hive SDK에 설정하는 게임 언어입니다. X `en`
ageGateU13 COPPA ageGateU13 적용 여부입니다. Hive SDK에 COPPA ageGateU13을 적용하려면, Hive 콘솔에 COPPA 약관을 등록한 후 Hive SDK를 초기화하기 전에 이 값을 true로 설정해야 합니다. COPPA ageGateU13을 적용하지 않으려면, Hive 콘솔에 COPPA 약관이 아닌 다른 약관을 등록한 상태에서 Hive SDK를 초기화하기 전에 이 값을 false로 설정해야 합니다.
  • true: Hive SDK에 COPPA ageGateU13을 적용
  • false: Hive SDK에 COPPA ageGateU13을 적용하지 않음
X `false`
agreementDetermineBase 약관 동의를 받는 기준을 결정합니다. `device` 또는 `account`를 선택할 수 있으며 기본값은 `device`입니다.
  • device 선택 시 약관 동의 팝업을 초기화 단계인 AuthV4.setup() 실행중에 노출하며 기기 기반으로 한번만 동의를 받습니다. 기기 기반으로 일단 동의를 받으면, 같은 기기에서 유저가 다른 계정으로 로그인해도 약관 동의를 받지 않습니다. `resetAgreement()`로 약관 동의 기록을 지울 수 있습니다.
  • account 선택 시 약관 동의 팝업을 로그인중에 노출하며 PlayerId 별로 한번만 동의를 받습니다. COPPA ageGateU13을 적용하지 않을 때에만 사용할 수 있습니다. `resetAgreement()`로 약관 동의 기록을 지울 수 없습니다. 마케팅 추적 도구들은 약관 동의 이후부터 동작합니다.
X `device`
Note

COPPA ageGateU13 적용 시, device 기반 약관 동의 팝업만 노출할 수 있습니다. COPPA ageGateU13 적용 시, 약관 동의 과정에서 어떤 유저가 13세 이상이라고 응답하면 Hive SDK는 해당 유저에게 COPPA ageGateU13을 적용하지 않습니다. 단, hive_config.xml에 설정한 값(true) 자체는 변하지 않습니다.

지원하지 않는 항목

Configuration 클래스 메서드들 중 더는 지원하지 않는 메서드들은 다음과 같습니다.

항목 설명 비고
permissions 권한 종류별로 설정하는 권한 요청 여부입니다. Android 전용 기능입니다.
  • 외장 메모리 권한
    • true: 권한 요청 창 표시
    • false : 권한 요청 창 표시하지 않음
  • 태그명: sdwrite
v4.16.3부터 derpecated
hivePermissionViewOn Hive SDK 권한고지 팝업 노출 여부입니다.
  • true: 노출
  • false: 노출 안 함
v4.16.2 부터 derpecated