환경 설정
개요
환경 별 플랫폼 연동을 위한 SDK의 설정 정보에 대한 가이드 입니다.
개발 버전과 라이브(릴리즈) 버전의 환경 설정 정보를 정리 합니다.
마켓 심사와 같은 Sandbox 리뷰 과정이 필요한 게임의 설정정보의 변경 시점에 대해 정리합니다.
SDK 플랫폼 환경 설정
환경 설정 방법
SDK의 플랫폼 환경은 Mount 시 env
파라메터로 전달 받고, 해당 환경의 PlatformConfig.json
파일을 통해 설정 합니다
Unity SDK
가이드: Mount
PlatformConfig.json
에 BuildEnv
값을 이용해 환경을 지정합니다. 환경에 따라 다수의 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
초기화(Mount) 할 때 Platform Configuration JSON의 BuildEnv
값을 이용해 환경을 지정합니다.
빌드 별 환경 설정
개발 빌드
qa
QA 빌드
qa
마켓 초도 검수
qa
유저에서 공개 되지 않는 빌드는 BuildEnv
를 qa
로 유지 합니다.
라이브(QA/마켓 심사 중)
qa
라이브(릴리즈) 빌드는 마켓 심사 완료 전 까지는 BuildEnv
를 qa
로 유지 합니다.
라이브(유저 공개)
prod
라이브(릴리즈) 빌드가 유저에게 공개 되는 시점에 별도의 패치 없이 BuildEnv
를 prod
로 변경 합니다.
마켓 심사 전 QA와 심사 중에는 Sandbox 환경을 사용하기 위해 BuildEnv
를 qa
로 설정 되어야 합니다.
마켓 심사 완료 후 라이브(릴리즈) 빌드가 유저에게 공개 되는 시점은 Production 환경 플랫폼을 사용하기 위해 BuildEnv
를 prod
로 변경 해야 합니다. 이 과정은 별도의 패치 없이 서버사이드(CDN 포함)에서 제어할 수 있어야 합니다.
환경 설정 권장 사항
버전별 리뷰서버 ↔ 라이브서버 간 전환이 가능한 환경을 구축합니다.
방안1: 버전별 메타정보 파일을 서버에서 수정할 수 있고, 해당 파일을 CDN을 통해 클라이언트에 전달 합니다.
방안2: 버전별 메타정보를 관리하는 별도의 서버 구성이 있고, GMTool 등 관리 툴을 통해 제어 합니다.
기타: 버전별 메타정보 관리 정책을 별도로 협의 합니다.
환경 전환 시 Server의 Endpoint와 함께 SDK 초기화 환경 설정도 함께 변경이 가능해야 합니다.
방안1 Unity 예시
버전별 메타정보 파일을 서버에서 수정할 수 있고, 해당 파일을 CDN을 통해 클라이언트에 전달 하여 BuildEnv를 유연하게 설정 합니다.
1) 리뷰 서버와 라이브 서버 둘 모두의 환경 파일을 준비하여 빌드에 포함합니다.
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);
Last updated