콘텐츠로 이동

앱 파일 준비

크로스플레이 런처로 앱을 배포하려면, 아래 예시와 같이 먼저 앱 아이콘, 앱 실행 파일, 앱 설정 파일 등 PC에서 앱 실행에 필요한 파일들을 준비해야 합니다.


ROOT_FOLDER
│  meta.json
└─ APP_FOLDER
    │  app.ico
    │  app.exe
    │  app.ini
    │  ...
    └─ resources
    └─ data
    └─ packages
    └─ ...

ROOT_FOLDER

ROOT_FOLDER는 크로스플레이 런처로 앱을 배포하는 데 필요한 모든 데이터를 담은 최상위 디렉토리입니다. ROOT_FOLDER에는 APP_FOLDER와 meta.json을 넣습니다. ROOT_FOLDER 폴더명은 앱 개발사에서 원하는 이름으로 지정합니다. 이름을 지정한 후 Hive콘솔 크로스플레이 런처 > 앱 관리 > 다운로드 설정 > 게임 설치 옵션 > 폴더명에 ROOT_FOLDER 이름을 입력해야 합니다.

APP_FOLDER

앱 실행에 필요한 파일들을 담은 폴더입니다. 앱 실행 파일, 아이콘 파일, 리소스, 데이터 등 필요한 파일들을 준비하여 넣습니다. APP_FOLDER 폴더명은 앱 개발사에서 원하는 이름으로 지정합니다. 단, APP_FOLDER와 APP_FOLDER 하위에 있는 폴더를 포함하여 폴더명에 "#" 또는 ";" 문자를 포함해서는 안 되며, APP_FOLDER 하위에는 비어 있는 폴더를 넣으면 안 됩니다.

META.JSON

meta.json은 APP_FOLDER에 넣은 앱 실행 파일(app.exe)의 상대 경로, 앱 아이콘(app.ico) 파일의 상대 경로, 앱 삭제 시 앱과 함께 삭제할 폴더 경로 또는 레지스트리 경로를 입력한 파일입니다. 여기서, 앱 실행 파일과 앱 아이콘 파일의 상대 경로는 meta.json 파일 위치를 기준으로 한 상대 경로입니다. meta.jsonAPP_FOLDER와 반드시 같은 위치에 있어야 합니다.

meta.json 파일은 다음과 같은 형식으로 작성합니다.

{
    "launch": "APP_FOLDER/app.exe",
    "icon": "APP_FOLDER/app.ico",
    "delete": [
        {
        "type": "CSIDL",
        "path": "0x1c/myGameLocalRes"
        },
        {
        "type": "general",
        "path": "C:/myGameGlobalRes"
        },
        {
        "type": "registrykey",
        "root": "0x80000001",
        "path": "SOFTWARE\\MyGame"
        }
    ]
}
필드명 설명 타입 필수 여부
launch

크로스플레이 런처로 앱을 실행할 때 사용하는 앱 실행 파일(예시:app.exe)의 상대 경로입니다.

string Y
icon

크로스플레이 런처로 앱을 설치할 때, PC 바탕 화면과 시작 메뉴에 바로가기 파일을 생성하는 데 필요한 앱 아이콘 파일(예시:app.ico) 상대 경로입니다. 크로스플레이 런처에서 바로가기 파일을 생성하려면 아이콘 파일이 반드시 있어야 합니다. 파일 포맷은 ico이며, 화면 해상도 대응을 위해 해상도가 서로 다른 총 6개 이미지 파일을 묶어 하나의 ico 파일로 만들어야 합니다.

  • 16X16
  • 32X32
  • 48X48
  • 64X64
  • 128X128
  • 256X256
string Y
delete

앱을 실행하는 과정에서 앱 설치 폴더가 아닌 다른 폴더에 데이터를 생성할 수 있습니다. 나중에 앱을 삭제할 때, 이렇게 앱 설치 폴더가 아닌 다른 곳에 존재하는 파일 또는 레지스트리를 함께 삭제해야할 경우, 삭제할 파일이 담긴 폴더 정보와 레지스트리 정보를 담은 배열입니다.

  • type: 앱 제거 시 함께 삭제할 데이터 종류(폴더 또는 레지스트리)
  • root: `type` 값이 레지스트리일 때만 입력하는 값으로, 레지스트리 Root에 해당함
  • path: 앱 제거 시 함께 삭제할 폴더 또는 레지스트리 경로
array N

 

다음은 delete 배열에 대한 안내입니다.

필드명 설명 타입 필수 여부
type

삭제할 데이터 종류입니다.

  • CSIDL: 삭제할 파일ProgramFiles 혹은 AppData 등 Windows OS에서 사용하는 특수한 폴더에 위치한 경우
  • general: 삭제할 파일이 일반적인 경로에 위치한 경우
  • registrykey: 삭제할 파일이 레지스트리 파일인 경우
string Y
root

레지스트리 Root에 해당하는 16진수 문자열로 typeregistrykey인 경우에만 입력합니다. 레지스트리 Root와 해당하는 16진수 값 예시는 아래와 같습니다.

  • Root: HKEY_CLASSES_ROOT
    값: 0x80000000
  • Root: HKEY_CURRENT_USER,
    값: 0x80000001
  • Root: HKEY_LOCAL_MACHINE,
    값: 0x80000002
  • Root: HKEY_USERS,
    값: 0x80000003
  • Root: HKEY_CURRENT_CONFIG,
    값: 0x80000005
string N
path

type 데이터가 위치한 경로입니다.

  • typeCSIDL일 때: CSIDL(16진수)/{나머지 경로} 형식으로 작성
  • typegeneral일 때: 절대 경로로 작성
  • typeregistrykey일 때: 레지스트리 전체 경로에서 Root를 제외하고 하위 트리와 키만 작성합니다.
string Y
Note

CSIDL 16진수 값은 다음을 참고하세요.

다음은 어떤 게임 앱 파일이 아래와 같이 준비되었을 때 meta.json을 구성하는 예시입니다.

데이터 종류 데이터 위치 비고
game.exe 게임 실행 파일 ROOT_FOLDER/game ROOT_FOLDERgame은 모두 게임사가 지정한 디렉토리
icon.ico 아이콘 파일 ROOT_FOLDER/game ROOT_FOLDERgame은 모두 게임사가 지정한 디렉토리
MyGame 레지스트리 HKEY_CURRENT_USER/SOFTWARE/SOFTWARE/MyGame 게임 실행 과정에서 생성한 데이터로, 게임 삭제 시 함께 삭제해아 하는 레지스트리
myGameGlobalRes 폴더(일반 경로) C:/myGameGlobalRes 게임 실행 과정에서 생성한 데이터로, 게임 삭제 시 함께 삭제해아 하는 파일이 있는 폴더
myGameLocalRes 폴더(특수 경로) C:/Users/[username]/AppData/Local/myGameLocalRes 게임 실행 과정에서 생성한 데이터로, 게임 삭제 시 함께 삭제해아 하는 파일이 있는 폴더

 

위 상황에서 meta.json 파일은 아래와 같이 작성합니다.

{
    "launch": "game/game.exe",
    "icon": "game/icon.ico",
    "delete": [
        {
        "type": "CSIDL",
        "path": "0x1c/myGameLocalRes"
        },
        {
        "type": "general",
        "path": "C:/myGameGlobalRes"
        },
        {
        "type": "registrykey",
        "root": "0x80000001",
        "path": "SOFTWARE\\MyGame"
        }
    ]
}