환경 설정

개요

환경 별 플랫폼 연동을 위한 SDK의 설정 정보에 대한 가이드 입니다.

  • 개발 버전과 라이브(릴리즈) 버전의 환경 설정 정보를 정리 합니다.

  • 마켓 심사와 같은 Sandbox 리뷰 과정이 필요한 게임의 설정정보의 변경 시점에 대해 정리합니다.

SDK 플랫폼 환경 설정

환경 설정 방법

SDK의 플랫폼 환경은 Mount 시 env 파라메터로 전달 받고, 해당 환경의 PlatformConfig.json 파일을 통해 설정 합니다

Unity SDK

PlatformConfig.jsonBuildEnv 값을 이용해 환경을 지정합니다. 환경에 따라 다수의 Config 를 추가해 두고 런타임 시 초기화(Mount) 할 때 결정 할 수 있습니다.

# 파일 위치
Resources/Platform/{env}/PlatformConfig.json

# Sample
Resources/Platform/dev/PlatformConfig.json
Resources/Platform/qa/PlatformConfig.json
Resources/Platform/prod/PlatformConfig.json
// Sample Resources\Platform\dev\PlatformConfig.json
{
  "BuildEnv": "dev",
  "serviceId": "100xxxx",
  "CustomScheme": "platformstarter"
}

Unreal Engine SDK

초기화(Mount) 할 때 Platform Configuration JSON의 BuildEnv 값을 이용해 환경을 지정합니다.

빌드 별 환경 설정

환경
BuildEnv
설명

개발 빌드

qa

QA 빌드

qa

마켓 초도 검수

qa

유저에서 공개 되지 않는 빌드는 BuildEnvqa로 유지 합니다.

라이브(QA/마켓 심사 중)

qa

라이브(릴리즈) 빌드는 마켓 심사 완료 전 까지는 BuildEnvqa로 유지 합니다.

라이브(유저 공개)

prod

라이브(릴리즈) 빌드가 유저에게 공개 되는 시점에 별도의 패치 없이 BuildEnvprod로 변경 합니다.

환경 설정 권장 사항

  1. 버전별 리뷰서버 ↔ 라이브서버 간 전환이 가능한 환경을 구축합니다.

    1. 방안1: 버전별 메타정보 파일을 서버에서 수정할 수 있고, 해당 파일을 CDN을 통해 클라이언트에 전달 합니다.

    2. 방안2: 버전별 메타정보를 관리하는 별도의 서버 구성이 있고, GMTool 등 관리 툴을 통해 제어 합니다.

    3. 기타: 버전별 메타정보 관리 정책을 별도로 협의 합니다.

  2. 환경 전환 시 Server의 Endpoint와 함께 SDK 초기화 환경 설정도 함께 변경이 가능해야 합니다.

방안1 Unity 예시

버전별 메타정보 파일을 서버에서 수정할 수 있고, 해당 파일을 CDN을 통해 클라이언트에 전달 하여 BuildEnv를 유연하게 설정 합니다.

1) 리뷰 서버와 라이브 서버 둘 모두의 환경 파일을 준비하여 빌드에 포함합니다.

review, prod 와 같은 env 는 샘플이며, 프로젝트별로 임의 지정 가능합니다.

Resources/Platform/review/PlatformConfig.json
Resources/Platform/prod/PlatformConfig.json
// Resources/Platform/review/PlatformConfig.json
{
  "BuildEnv": "qa",
  "serviceId": "100xxxx",
  "CustomScheme": "sampleapp"
}
// Resources/Platform/prod/PlatformConfig.json
{
  "BuildEnv": "prod",
  "serviceId": "100xxxx",
  "CustomScheme": "sampleapp"
}

2) 앱 버전별 env 값을 CDN을 통해 취득합니다.

// CDN을 통해 전달되는 메타 정보 샘플
[
  {
    "version": "1.0",    // 배포된 버전
    "env": "prod"
  },
  {
    "version": "1.1",     //심사중인 버전
    "env": "review"
  }
]

3) 심사중인 앱의 경우 버전(1.1)의 env 값이 review 임을 확인하고 SDK 를 초기화 합니다.

...
var buildEnv = string.IsNullOrEmpty(env) ? "prod" : env;  // env = review

// 초기화 정의 파일 Resources/Platform/review/PlatformConfig.json
PlatformSupervisor.Mount(buildEnv);

4) 심사 완료 후 앱 공개 후 2)에 배포한 CDN 정보를 prod로 업데이트하거나, 정보를 삭제 하여 CDN에 버전 정보가 없는 경우 기본적으로 prod로 접속할 수 있도록 한다.

[
  {
    "version": "1.1",     //심사중인 버전
    "env": "prod"
  }
]
...
var buildEnv = string.IsNullOrEmpty(env) ? "prod" : env;  // env = prod

// 초기화 정의 파일 Resources/Platform/prod/PlatformConfig.json
PlatformSupervisor.Mount(buildEnv);

환경 설정과 관련된 시스템 구성은 게임 특성을 고려하여 방안1, 2 혹은 별도의 방안으로 기술PM과 협의 할 수 있고, 가이드 및 시스템 구축 기술 지원 가능 합니다.

Last updated