앱 파일 준비¶
크로스플레이 런처로 앱을 배포하려면, 아래 예시와 같이 먼저 앱 아이콘, 앱 실행 파일, 앱 설정 파일 등 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.json은 APP_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) 상대 경로입니다. 크로스플레이 런처에서 바로가기 파일을 생성하려면 아이콘 파일이 반드시 있어야 합니다. 파일 포맷은
| string | Y |
delete | 앱을 실행하는 과정에서 앱 설치 폴더가 아닌 다른 폴더에 데이터를 생성할 수 있습니다. 나중에 앱을 삭제할 때, 이렇게 앱 설치 폴더가 아닌 다른 곳에 존재하는 파일 또는 레지스트리를 함께 삭제해야할 경우, 삭제할 파일이 담긴 폴더 정보와 레지스트리 정보를 담은 배열입니다.
| array | N |
다음은 delete
배열에 대한 안내입니다.
필드명 | 설명 | 타입 | 필수 여부 |
---|---|---|---|
type | 삭제할 데이터 종류입니다. | string | Y |
root | 레지스트리 Root에 해당하는 16진수 문자열로
| string | N |
path |
| string | Y |
Note
CSIDL 16진수 값은 다음을 참고하세요.
다음은 어떤 게임 앱 파일이 아래와 같이 준비되었을 때 meta.json을 구성하는 예시입니다.
데이터 | 종류 | 데이터 위치 | 비고 |
---|---|---|---|
game.exe | 게임 실행 파일 | ROOT_FOLDER/game | ROOT_FOLDER와 game은 모두 게임사가 지정한 디렉토리 |
icon.ico | 아이콘 파일 | ROOT_FOLDER/game | ROOT_FOLDER와 game은 모두 게임사가 지정한 디렉토리 |
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"
}
]
}