타이틀 패키징, 콘텐츠 업데이트, 스트리밍 설치 테스트
이 항목에서는 로컬 반복, 성능 유효성 검사, 제출 전 테스트 및 최종 제출을 위한 스트리밍 설치용 패키지를 생성하는 방법을 설명합니다. 패키징 과정에서 MakePkg 도구가 실행하는 단계와 개발 중 패키징 및 스트리밍 설치 테스트를 위한 권장 단계를 알아봅니다.
소개
MakePkg.exe는 XVC(Xbox 가상 컨테이너)라고 하는 이진 패키지 파일에 콘텐츠를 배치하는 도구입니다. 본체용 XVC는 파일 확장명이. xvc이고, PC용 파일 확장명은. msixvc입니다. 확장자 차이 외에도 Xbox One 제품군(_x)과 Xbox Series X|S 제품군(_xs) 패키지를 구분하기 위해 패키지 이름에 접미사가 추가되었습니다.
MakePkg.exe는 입력으로 타이틀의 콘텐츠와 매핑 파일을 사용하여 암호화를 위해 잘 알려진 테스트 키, 무작위로 생성된 키 또는 안정 키 안전을 사용하여 암호화된 패키지를 만듭니다. 암호화하는 데 사용되는 키는 패키지가 로컬 테스트에 사용되거나 게시 및 사용 사례에 대한 Microsoft의 제출에 어떤 영향을 미치느냐에 따라 아래에 자세히 제시합니다.
매핑 파일의 XML의 용도는 두 가지입니다. 먼저, 런타임에 타이틀이 사용할 수 있는 파일의 위치를 지정합니다. 둘째, 각 파일 속해 있는 청크 파일을 지정합니다. 시작 세트로 알려진 청크 세트는 타이틀이 실행되기 전에 항상 설치됩니다. 나머지 청크는 타이틀이 실행되는 동안 설치됩니다. API는 청크 설치의 진행 상황을 쿼리하고, 아직 설치되지 않은 청크의 설치 순서를 수정할 수 있습니다.
이 항목의 내용:
패키징 동안의 단계
MakePkg 패키징 과정은 몇 단계로 나눌 수 있습니다.
MicrosoftGame.config와 파일 존재 검사
MakePkg 명령은 콘텐츠 원본 디렉터리에 있는 MicrosoftGame.config 파일이 유효하며 제대로 설치될지 여부를 확인합니다.
MakePkg 팩 명령을 실행하면 MicrosoftGame.config 내에서 참조하는 파일이 소스 디렉터리에 있는지 확인하고, 시작 세트에 패키징되게 합니다. 여기에는 이진 파일, 이미지 파일 및 기타 리소스가 포함됩니다.
이진 서명
타이틀의 파일은 XCI(Xbox 코드 무결성)를 사용하여 스캔하고 서명합니다. 파일에서 탐지된 PE 헤더는 패키지 파일에 기록되기 전에 이 프로세스에서 수정됩니다. 서명이 실패하면 오류 메시지가 보고되고 xcihash.exe를 수동으로 다시 실행하라는 지침이 표시됩니다. 이는 서명 실패의 자세한 원인을 수집하기 위한 것입니다.
패키지 만들기
MakePkg가 사전 유효성 검사 단계를 완료하는 즉시, 패키지 파일이 생성됩니다. 그럼 다음 MakePkg는 서명된 실행 파일을 포함한 소스 파일을 XML 맵 파일에 지정된 청크의 패키지 파일에 복사합니다.
참고 항목
본체에서만: 패키지 제작의 마지막 단계는 GameOS 파일(GameOS.xvd)을 넣는 것입니다. 이 파일은 GDK의 일부이며 게임의 실행 파일 옆에 있는 레이아웃 디렉터리에 있어야 합니다. /gameos 플래그는 GameOS 파일의 대체 소스 위치를 지정할 수 있습니다.
암호화
유형 | 테스트 서명(/lt) | 무작위 키(/l) | 안정적인 키(/lk SECRET.LEKB) |
---|---|---|---|
델타 업로드 | 예 | 아니요 | 예 |
packageutil 비교 | 예 | 아니요 | 예 |
보안 업로드 | 아니요 | 예 | 예 |
미사용 패키지 보안 | 아니요 | 예 | 예 |
개발 키트의 사이드로드 | 예 | 아니요 | 예 |
PC의 사이드로드 | 예 | 아니요 | 아니요 |
테스트 서명(기본값 암호화)
기본 MakePkg 동작은 테스트 서명된 패키지를 만드는 것이지만 makepkg pack
를 호출할 때 /lt 스위치를 사용할 때도 표시됩니다. 테스트 서명은 잘 알려진 테스트 암호화 키를 사용하여 생성한 패키지 파일을 암호화합니다. Xbox 및 PC에서 실행하기 위한 성능을 테스트하기 위함입니다. 실시간 패키지 암호 해독은 타이틀에 영향이 없도록 설계되었지만, 타이틀의 인증 및 최종 마스터링 전에 암호화 때문에 발생할 수 있는 문제가 발견되게 합니다. 테스트 서명 패키지는 암호화로 콘텐츠를 보호하는 데 사용하지 않습니다. 암호화에 고정된 키를 사용하기 때문입니다.
xbapp install을 이용하면 테스트 서명 패키지를 개발 키트에 설치할 수 있고, wdapp install을 이용하면 개발 PC에 설치할 수 있습니다.
임의 키 암호화(/l 스위치)
MakePkg /l 스위치는 무작위로 생성된 암호화 키로 패키지 파일을 암호화합니다. 타이틀 패키지 외에도, MakePkg /l은 PackageFullName_licenseName_GUID.EKB 형식의 이름을 가진 파일을 출력합니다. 밑줄(_) 문자를 사용합니다. /l 스위치로 생성된 패키지는 개발 키트 또는 개발 PC에 설치할 수 없습니다. 타이틀이 모든 검사와 사전 제출 테스트를 통과할 때까지 테스트 서명 패키지를 사용하여 타이틀을 테스트해야 합니다. 이 상태에 도달한 후에는 Microsoft에 최종 제출하기 전에 MakePkg을 /l 스위치로 실행하세요.
권장 - 안정적인 키 암호화(Genkey + /lk 스위치)
Makepkg /lk 스위치는 makepkg genkey
명령을 통해 만든 안정적인(항상 동일) 키를 사용하여 패키지를 암호화합니다. 타이틀 패키지 외에도 MakePkg/lk은(는) PackageFullName_licenseName_GUID.EKB 및 PackageFullName_licenseName_GUID.CEKB 형식의 이름을 가진 파일을 내보냅니다. 밑줄(_) 문자를 사용합니다.
/lk 스위치로 생성된 패키지는 개발 키트에 설치할 수 있지만 개발 PC에는 설치할 수 없습니다. PC의 경우, 타이틀이 모든 검사와 사전 제출 테스트를 통과할 때까지 테스트 서명 패키지를 사용하여 타이틀을 테스트해야 합니다.
이 항목은 다음과 같은 이점으로 인해 개발 키트 테스트 및 전송에 권장되는 암호화 모드입니다.
- packageutil 비교는 /l과 달리 올바른 업데이트 크기 추정치를 생성할 수 있습니다.
- 이 기능을 사용하면 콘솔과 PC가 콘텐츠 업데이트를 다운로드하는 데 사용하는 것과 동일한 알고리즘을 사용하여 파트너 센터에 델타 업로드를 안전하게 수행할 수 있습니다.
- (/l와(과) 달리) 개발 키트에 설치할 수 있습니다.
- (/lt와(와) 달리) 보안 암호화 키 자료를 사용하며 특정 환경에서만 암호를 해독할 수 있습니다.
/lt 및 /l 암호화 모드와 달리 /lk 모드는 이를 사용하기 위해 추가적인 일회성 단계가 필요합니다.
- 1회성:
makepkg genkey /ekb SECRET_KEY.lekb
을(를) 실행하여 SECRET_KEY.lekb 파일을 만듭니다. 패키지를 암호화하는 안정적인 콘텐츠 키를 저장하는 LEKB(로컬 에스크로된 키 블롭)입니다. 액세스 권한이 필요한 안전한 장소에 보관해야 합니다. 이상적인 설정에서는 공식 빌드 머신/계정 만 액세스할 수 있어야 합니다. - 패키지 작성:
makepkg pack /lk SECRET_KEY.lekb ...
을(를) 실행하세요. 이 작업은 SECRET_KEY.lekb 파일에 저장된 키를 사용하여 암호화된 패키지를 생성합니다. - 패키지 업로드: XVC 및 EKB 파일은 파트너 센터에 정상적으로 업로드됩니다. LEKB 및 CEKB 파일은 업로드되지 않습니다.
xbapp 설치는 패키지를 ERA 개발 키트에 로드하는 데 필요한 CEKB 파일을 자동으로 설치합니다. 도구 기반 설치(게임 디스크, 외부 저장소, 콘솔 간 전송) 이외의 설치 시나리오를 테스트하는 경우 xbapp installkey 명령을 사용하여 CEKB 파일만 설치할 수 있습니다.
Warning
LEKB 파일의 내용은 약간 난독화됩니다. LEKB 파일에 대한 액세스를 보호하여 콘텐츠 패키지의 보안을 보장하는 것은 사용자의 책임입니다. LEKB 파일과 makepkg 팩에서 출력한 콘텐츠 패키지 파일을 소유한 사용자는 누구나 해당 콘텐츠를 해독할 수 있습니다.
Warning
CEKB 파일의 내용을 통해 모든 활성 ERA 개발 키트에 패키지를 로드할 수 있습니다. CEKB 파일에 대한 액세스를 보호하여 콘텐츠 패키지의 보안을 보장하는 것은 사용자의 책임입니다. CEKB 파일, 활성 ERA 개발 키트 및 makepkg 팩에서 출력한 콘텐츠 패키지 파일을 소유한 사용자는 누구나 개발 키트에 패키지를 설치하고 패키지를 시작할 수 있으며 패키지에서 파일을 xbcp할 수 있습니다.
Important
2021년 4월 GDK 이전에 생성된 LEKB 파일은 CEKB 파일을 생성하지 않습니다. 새로운 개발 키트 사이드 로딩 기능을 사용하려면 2021년 4월 이후의 GDK 도구를 사용하여 LEKB 파일을 다시 만들어야합니다.
제출 유효성 검사
MakePkg는 패키지를 만든 후 타이틀 파일에 대해 제출 유효성 검사 도구(SubmissionValidator.dll)를 자동으로 실행합니다. 제출 유효성 검사 도구의 목적은 나중에 Microsoft에서 수집, 마스터링 또는 인증할 때나 이후에 콘텐츠를 업데이트할 때 타이틀에 문제를 일으킬 수 있는 오류와 문제를 확인하는 것입니다. 파트너 센터에 업로드하기 위해 서명된 패키지를 생성하기 전에, 탐지된 모든 문제를 수정해야 합니다.
제출 유효성 검사 프로세스를 실행하면 오류의 특성과 위치를 자세히 설명하는 XML 로그 파일이 생성됩니다. 이 로그 파일은 패키지 파일의 출력을 위해 MakePkg의 /pd 매개 변수로 지정한 위치에 기록됩니다. 이 로그에는 오류나 경고가 포함될 수 있습니다. 오류는 패키지를 Microsoft에 제출하기 전에 해결해야 합니다. 경고가 표시되면 타이틀은 정책과 XR(Xbox 요건) 지침을 준수하도록 수정하는 방안을 고려해야 합니다.
패키지가 파트너 센터에 업로드되어 마스터링 프로세스에 게시되면 유효성 검사가 다시 실행됩니다. 이렇게 하면 제출 유효성 검사 도구의 최신 버전을 사용하여 타이틀을 확인하고 가능한 한 빨리 문제를 해결할 수 있습니다.
제출 유효성 검사 테스트
제출 유효성 검사 테스트 | 설명 |
---|---|
외부 파일 | 타이틀에 금지된 파일이 없는지 확인합니다. 금지된 파일에는 소스 및 디버그 파일(*.c, *.cpp, *.obj, *.lib, *.cs, *.h 등)과 Game OS 볼륨에 포함된 모든 시스템 파일이 포함됩니다. |
MicrosoftGame.config | MakePkg에서 수행하지 않는 다양한 구성 확인:
|
이진 검사 | 모든 .exe 및 .dll 파일의 비 소매 종속성 여부를 확인합니다. 모든 관리형 코드 이진은 오류를 발생합니다(본체에만 해당). 탐지되는 다른 문제로는 Xbox One 실행 파일이 아닌 파일(본체에만 해당), 32비트 실행 파일(본체에만 해당) 등이 있습니다. |
새로운 문제가 확인되면 그에 따른 구체적인 테스트가 개발됩니다. 제출 유효성 확인 검사를 통과했다고 해서 수집과 인증 과정에서 타이틀 제출에 다른 문제가 발생하지 않는다고 해석해서는 안 됩니다. 오히려, 예측 가능한 오류로 거부를 당하는 것이 시간과 비용을 줄이는 것일 수 있습니다. 또한 제출 유효성 검사 도구가 특정 보안 관련 문제를 확인할 수는 있지만, 타이틀에 대한 보안 테스트로 생각해서는 안 됩니다.
최신 버전의 제출 유효성 검사 도구는 XGD(Xbox Game Developer) 사이트에서 다운로드할 수 있습니다. 이 도구는 Xbox One 소프트웨어 개발 키트 릴리스와 다른 속도로 발전할 수 있으므로 제출 프로세스에서 유효성 검사 실패 거부를 방지하기 위해 최신 버전을 사용해야 합니다. 최신 버전을 얻으려면 Xbox 개발자 다운로드->Xbox One->제출 유효성 검사 도구를 참조하세요.
제출 유효성 검사 도구에 대한 자세한 내용은 GDK 설명서의 제출 유효성 검사기(SubmissionValidator.dll)를 참조하세요.
유효성 검사 프로세스에 대한 질문이 있으면 DAM(개발자 계정 관리자)에게 문의하세요.
개발 중 패키징을 위해 권장되는 단계
개발하는 동안 패키지를 만들려면 다음 단계를 수행하는 것이 좋습니다(PC를 대상으로 하는 경우 xbapp 대신 wdapp 사용).
- 테스트 서명 패키지를 사용하여 로컬에서 반복하고 개발 PC에서 xbapp 설치를 수행합니다.
MakePkg.exe pack /fMapfile/dLooseContentDir/pdOutputFolder
스트리밍 설치(개발자 교육 자료 > 모든 NDA 샘플)를 참조하여 시작하세요. - 셸에서 시작하거나 xbapp 시작을 사용하여 타이틀을 실행합니다.
xbapp 설치local-XVC-path 또는 xbapp 설치http-URI
스트리밍 설치를 위한 대체 옵션을 테스트하려면 이 항목의 뒷부분에 있는 스트리밍 설치 패키지 테스트를 참조하세요. - 루트 폴더의 블루레이 디스크에 구운 테스트 서명 패키지를 사용하여 ODD(광 디스크 드라이브)에서 테스트 타이틀 설치를 완료합니다. Xbox One 개발 키트에 디스크를 삽입한 후 다음을 실행합니다.
* xbapp install XO:*XVC-file-name - 테스트 서명 패키지와 동일한 패키징 명령과 /l 플래그를 사용하여 최종 제출을 준비합니다.
스트리밍 설치 패키지의 테스트(PC)
wdapp 명령을 사용하여 테스트 PC에 패키지를 설치합니다.
참고 항목
현재 테스트 MSIXVC 패키지가 테스트 PC 또는 웹 서버의 물리적 드라이브에 반드시 존재해야 합니다. 향후 업데이트에서 UNC(범용 명명 규칙) 공유로부터 설치가 추가될 예정입니다.
자세한 내용은 PC용 패키징 시작하기를 참조하세요.
스트리밍 설치 패키지의 테스트(본체)
테스트 서명 스트리밍 설치 패키지의 설치를 테스트하는 네 가지 방법이 있습니다.
개발 PC의 스트림
개발 PC에서 스트리밍하면 처리량 스로틀링이 지원되지 않습니다. 설치 속도는 개발 컴퓨터의 프로세서 및 I/O 특성뿐만 아니라 개발 컴퓨터와 개발 키트 사이의 네트워크 연결 대역폭에 따라 달라집니다. 현대의 개발 PC와 기계식 하드 드라이브에서는 기가비트 이더넷 연결과 300Mbps(약 36MiB/초) 이상의 속도를 기대할 수 있습니다.
xbapp installdev-pc-path-to-XVC
웹 서버에서 패키지 호스트
웹 서버가 대역폭 스로틀링 구성을 지원한다면 웹 서버에서 패키지를 호스팅하여 다른 네트워크 전달 속도도 시뮬레이션할 수 있습니다. Xbox One 플랫폼이 연결 실패 및 재시도 논리를 처리합니다. 속도와는 별도로 인터넷 소스에 설치할 때도 광 디스크에서 설치할 때와 동일하게 타이틀이 실행되어야 합니다.
xbapp installhttp-URI-to-package
패키지를 디스크에 굽고 명령줄에서 설치
XVC를 광 디스크의 루트 디렉터리에 굽고 다음 명령을 사용하여 패키지를 설치합니다.
xbapp install XO:*xvc-file-name*
패키지를 디스크에 굽고 셸을 통해 설치
패키지가 포함된 MSXC라는 이름의 폴더를 광디스크에 굽기
실행 중인 개발 키트에 디스크를 넣습니다. 셸이 자동으로 타이틀을 설치하기 시작하고, 개발 키트는 시작 세트가 설치되고 타이틀이 실행 준비가 된 후에 알림을 표시합니다.
모범 사례
하위 파일 콘텐츠 업데이트 사용
하위 파일 콘텐츠 업데이트를 사용하면 콘텐츠 업데이트의 크기를 줄일 수 있습니다. 향후 최적의 콘텐츠 업데이트를 위해 패키지 레이아웃을 작성합니다.
최적의 업데이트를 위한 패키지 작성에 대한 자세한 내용은 콘텐츠 업데이트 모범 사례(NDA 항목)를 참조하세요권한 부여 필요.
Xbox 요건 034(XR-034: 스트리밍 설치 초기 플레이 마커)
초기 플레이어 마커를 포함하는 것은 선택 사항이며, 구매를 적극 권장합니다. 배경에서 설치가 계속되는 동안 타이틀이 완전히 설치되기 전에 사용자가 실행할 수 있습니다. XR-034 기준: 스트리밍 설치의 초기 플레이어 마커에 따라 초기 플레이 마커를 포함하는 타이틀은 초기 플레이 마커에서 실행할 때 게임 플레이 환경을 제공해야 합니다.
타이틀 테스트
다양한 소스와 다른 속도로 설치하여 타이틀을 테스트하세요.
최신 제출 유효성 검사 도구 사용
항상 최신 버전의 제출 유효성 검사 도구를 사용하세요.
최신 버전의 제출 유효성 검사 도구는 Xbox 개발자 다운로드- >Xbox One->제출 유효성 검사 도구에서 사용할 수 있습니다.
리소스 및 가이드
다음 항목은 설명서에서 유용한 부분이므로 숙지하시기 바랍니다.
- 시스템 > 개요 >스트리밍 설치 및 지능형 전송: 개요
- 시스템 > 개요 > 스트리밍 설치 >청크의 동적 순서 재정렬
- 시스템 > 개요 > 스트리밍 설치 >스트리밍 설치: 상태
- 테스트, 자동화 및 게시 > 도구 > 스트리밍 설치 >배포 패키지 스키마
- 테스트, 자동화 및 게시 > 도구 > 스트리밍 설치 >패키지 만들기(makepkg.exe)
참고 항목
MicrosoftGame.config
제출 유효성 검사 도구(SubmissionValidator.dll)
제출 유효성 검사 도구 품질 테스트