> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XBOX 콘솔용 타이틀 패키징 시작하기

> XBOX 콘솔용 타이틀 패키징 시작하기

다음 단계를 사용하여 Microsoft Game Development Kit에서 테스트를 위해 사이드로드할 수 있고 게시를 위해 Partner Center에 제출할 수 있는 XVC 패키지를 만듭니다.

## Partner Center에서 제품 ID 정보 가져오기

패키지는 게시자 ID, PackageFamilyName, MSAAppId, TitleId를 포함하여 Partner Center에서 게임에 할당된 제품 ID를 참조합니다. 제품을 설정하고 **Game Setup | Identity** 페이지에서 이 정보를 검색하여 MicrosoftGame.config에서 사용하세요.

1. 아직 등록하지 않았다면 [ID@XBOX 프로그램에 등록](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/pc-dev/tutorials/pc-e2e-guide/e2e-register-id-at-xbox)하고 [Partner Center 계정을 만드세요](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/pc-dev/tutorials/pc-e2e-guide/e2e-creating-partnercenter-account).
2. Partner Center에서 게임에 대한 [초기 제품 정의를 만듭니다](https://learn.microsoft.com/gaming/gdk/docs/gdk-dev/pc-dev/tutorials/pc-e2e-guide/e2e-creating-partnercenter-product-definition).
3. 제품의 **Game Setup | Identity** 페이지에서 위에 나열된 ID 값을 찾습니다.

## 나머지 게임 콘텐츠와 함께 루트 폴더에 MicrosoftGame.config 파일 만들기

이 문서의 뒷부분에 MicrosoftGame.config XML 파일 샘플이 포함되어 있습니다. .config 파일 생성을 간소화하고 Partner Center 프로젝트에서 ID 및 이름 값을 자동으로 동기화할 수 있는 [MicrosoftGame.config Editor](/build/core-features/common/game-config/MicrosoftGameConfig-Editor)와 함께 이 샘플을 참조로 사용하세요.

## 셸 및 Microsoft Store 패키지 표시용 아이콘 만들기

다음 MicrosoftGame.config 샘플에 나열된 각 이미지에 대해, 지정된 크기로 조정된 해당 파일을 게임의 루트 폴더에 배치합니다. 또는, 이미지 자산을 하위 디렉터리에 배치하고 일치하도록 `ShellVisuals` 아이콘 경로를 조정할 수 있습니다. [MicrosoftGame.config Editor](/build/core-features/common/game-config/MicrosoftGameConfig-Editor)는 단일 원본 이미지를 입력으로 하여 이러한 이미지를 생성하는 기능을 제공합니다.

## Microsoft Game Development Kit(GDK) 설치(makepkg.exe 패키징 도구 포함)

기본적으로 Microsoft Game Development Kit(GDK) 명령 프롬프트는 `C:\Program Files (x86)\Microsoft GDK\Command Prompts` 폴더에 있습니다.

## 패키징 레이아웃 매핑 파일 만들기

모든 게임 콘텐츠가 있는 단일 폴더가 포함된 폴더에서 Microsoft Game Development Kit(GDK) 명령 프롬프트를 연 다음 다음 명령을 실행합니다.

`makepkg genmap /f layout.xml /d <Your_Game_Folder>`

## 패키지 만들기

### 패키지를 만드는 방법

다음 단계를 따라 `/lk` 암호화된 패키지를 만듭니다.

1. 한 번만 수행: `makepkg genkey /ekb SECRET_KEY.lekb`를 실행하여 `SECRET_KEY.lekb` 파일을 만듭니다. 이 파일은 패키지를 암호화하는 안정적인 콘텐츠 키를 저장하는 로컬 에스크로 키 blob(LEKB)입니다. 알아야 할 사람만 액세스할 수 있는 안전한 위치에 저장하세요. 이상적인 설정에서는 공식 빌드 컴퓨터와 계정만 이에 액세스할 수 있어야 합니다.
2. 패키지 생성: `makepkg pack /lk SECRET_KEY.lekb /f layout.xml /d <Your_Game_Folder_Name> /pd <Output_Folder_Name>`를 실행합니다. 이 명령은 SECRET\_KEY.lekb 파일에 저장된 키를 사용하여 암호화된 패키지를 만듭니다.

### 패키지 암호화에 대한 중요 참고 사항

`makepkg` `/lk` 스위치는 `makepkg genkey` 명령이 생성한 안정적인(항상 동일한) 키를 사용하여 패키지를 암호화합니다. 타이틀 패키지 외에도, `makepkg /lk`는 *PackageFullName\_licenseName\_GUID.EKB* 및 *PackageFullName\_licenseName\_GUID.CEKB* 형식으로 명명된 파일을 생성합니다. (밑줄(\_) 문자의 사용에 유의하세요.)

콘솔에서의 개발 키트 테스트 및 제출을 위해 `/lk` 암호화를 사용합니다. 이는 테스트 암호화(`/lt`) 및 제출 암호화(`/l`)와 비교하여 다음과 같은 이점을 제공합니다.

1. `packageutil compare`가 올바른 업데이트 크기 추정치를 생성할 수 있습니다(`/l`과 달리).
2. 콘솔 및 PC가 콘텐츠 업데이트를 다운로드할 때 사용하는 것과 동일한 알고리즘을 사용하여 Partner Center에 대한 안전한 델타 업로드를 가능하게 합니다.
3. 개발 키트에 설치할 수 있습니다(`/l`과 달리).
4. 안전한 암호화 키 자료를 사용하며 특정 환경에서만 복호화할 수 있습니다(`/lt`와 달리).

## 패키지 설치 테스트

다음 명령을 사용하여 패키지 설치를 테스트합니다.

`xbapp install <Your_Package>`

패키지가 Intelligent Delivery Feature를 사용하는 경우, `/i` 옵션을 사용하여 소매 최종 사용자 경험을 테스트하기 위해 설치할 패키지 기능을 선택하는 대화형 셸 UI를 호출합니다.

`xbapp install /i <Your_Package>`

### 패키지 설치에 대한 중요 참고 사항

`xbapp install`은 XBOX 개발 키트에 패키지를 로드하는 데 필요한 CEKB 파일을 자동으로 설치합니다. 도구 기반 설치(게임 디스크, 외부 저장 장치, 콘솔 간 전송) 이외의 설치 시나리오를 테스트하는 경우, `xbapp installkey` 명령을 사용하여 CEKB 파일만 설치할 수 있습니다. 자세한 내용은 [xbapp.exe](/tools/tools-console/commandlinetools/xbapp)를 참조하세요.

<Info>
  2021년 4월 GDK 이전에 생성된 LEKB 파일은 CEKB 파일을 만들지 않습니다. 새 개발 키트 사이드로드 기능을 사용하려면 2021년 4월 이상의 GDK 도구로 LEKB 파일을 다시 만들어야 합니다.
</Info>

### 패키지용 디스크를 만들 계획인 경우 다음 문서를 참조하세요

[테스트 컴필레이션 디스크 만들기](/build/core-features/common/packaging/creating-test-compilation-discs) [세대 간 테스트 디스크 만들기](/build/core-features/common/packaging/creating-cross-gen-test-discs)

## Microsoft Partner Center에 패키지 제출

이전 makepkg.exe 명령을 사용하여 만든 패키지는 `/lk` 플래그를 사용하여 패키지를 암호화했기 때문에 테스트와 제출 모두에 사용할 수 있습니다. 이 패키지를 업로드할 때 델타 업로드의 이점도 얻을 수 있습니다. XVC 및 EKB 파일은 평소와 같이 Partner Center에 업로드됩니다. LEKB 및 CEKB 파일은 업로드되지 않습니다.

## MicrosoftGame.config 샘플

MicrosoftGame.config라는 파일을 만듭니다. 게임 콘텐츠의 루트 디렉터리에서 다음 내용을 사용한 다음, 필요하지 않은 항목의 주석을 제거합니다. 자세한 내용은 [MicrosoftGame.config 참조 페이지](/reference/system/microsoftgameconfig/microsoftgameconfig-schema)를 참조하세요.

수동으로 MicrosoftGame.config를 만들 수도 있지만, 이 파일을 만드는 가장 좋은 방법은 [MicrosoftGame.config Editor](/build/core-features/common/game-config/MicrosoftGameConfig-Editor)를 사용하는 것입니다.

```xml theme={null}
<?xml version="1.0" encoding="utf-8"?>
<Game configVersion="1">
    <!-- Publisher should match the exact value provided in the "Package/Identity/Publisher" field of the Game setup -> Identity section of your product's configuration area in Partner Center.
         Name should match the exact value provided in the "Package/Identity/Name" field of the Game setup -> Identity section of your product's configuration area in Partner Center. -->
    <Identity Name="**REPLACE**"
        Publisher="**REPLACE**"
        Version="1.0.1.0"/>
        <!-- For MSIXVC/MSIXVC2 the fourth digit of the version number is reserved for Microsoft Store use -->

    <!-- These values are found in the Game Setup -> Identity section in your product's configuration area in Partner Center. -->
    <StoreId>**REPLACE WITH STOREID**</StoreId>
    <MSAAppId>**REPLACE WITH MSAAPPID**</MSAAppId>
    <TitleId>**REPLACE WITH TITLEID**</TitleId>

     <!-- Use OverrideDisplayName if you want to display a different title in the shell than the DefaultDisplayName from the ShellVisuals section, or if you need to localize it. 
          Use TargetDeviceFamily to specify what platform your executable is built for (NOTE: Packaging will only allow one TargetDeviceFamily type to be specified to properly build a package. For more information, see the above reference page.) -->
    <ExecutableList>
      <Executable Name="**REPLACE**"
                  Id="Game"
                  OverrideDisplayName="**REPLACE**"
                  TargetDeviceFamily="XboxOne"
                  />
    </ExecutableList>

    <!-- DefaultDisplayName should match the exact value provided in the "Package/Identity/Name" field of the Game setup -> Identity section of your product's configuration area in Partner Center.
         PublisherDisplayName should use the exact value provided in the "Package/Properties/PublisherDisplayName" field of the Game setup -> Identity section of your product's configuration area in Partner Center.-->

    <!-- The following asset sizes apply
         StoreLogo - 100x100
         Square150x150Logo - 150x150
         Square44x44Logo - 44x44
         SplashScreenImage - 1920x1080
    -->
    <ShellVisuals DefaultDisplayName="**REPLACE**" 
                  PublisherDisplayName="**REPLACE**"
                  StoreLogo="StoreLogo.png"
                  Square150x150Logo="Logo.png"
                  Square44x44Logo="SmallLogo.png"
                  Description="**REPLACE**"
                  BackgroundColor="#000040"
                  SplashScreenImage="SplashScreen.png"/>
</Game>
```

## 관련 패키징 문서

[PC용 타이틀 패키징 시작하기](/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC) [MicrosoftGame.Config](/build/core-features/common/game-config/MicrosoftGameConfig-toc) [XBOX 개발 키트에 타이틀 배포](/home/setup-install/concepts/deployment)


## Related topics

- [게임 패키지 만들기 및 파트너 센터에 업로드](/ko/publishing/game-publishing/tutorial-xbox-managed/how-to-create-a-package.md)
- [패키지](/ko/publishing/game-publishing/concepts/game-package-management.md)
- [Partner Center에서 초기 구성](/ko/publishing/xstore-commerce/xstore-initial-configuration.md)
- [MSIXVC 도구로 PC 타이틀 패키징 시작하기](/ko/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC.md)
- [패키징 개요](/ko/build/core-features/common/packaging/overviews/packaging.md)
