> ## 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.

# Make package (makepkg.exe)

> Make package (makepkg.exe)

アプリケーションパッケージを作成し、Partner Center にパッケージをアップロードし、関連するパッケージ化操作を実行します。`makepkg` は XVC、MSIXVC、および MSIXVC2 パッケージ形式をサポートします。MSIXVC2 形式でパッケージを生成するには `/msixvc2` オプションを使用します。

```text theme={null}
makepkg <command> [options]
```

## グローバルオプション

| オプション     | 説明                  |
| --------- | ------------------- |
| `/v`      | コンソールへの詳細出力を有効にします。 |
| `/?`、`/h` | ヘルプと使用情報を表示します。     |

## コマンド

* [pack](#pack) - ディスク上のファイルから新しいアプリパッケージを作成します。
* [upload](#upload) - パッケージまたはファイルのディレクトリを Partner Center にアップロードします。
* [genkey](#genkey) - `pack /lk` で使用する暗号化キーを生成します。
* [genid](#genid) - Product ID GUID と Store ID の間で変換します。
* [genmap](#genmap) - ディスク上のコンテンツに基づいてマッピング XML ファイルを生成します。
* [validate](#validate) - パッケージを作成せずに検証を実行します。
* [updatesubval](#updatesubval) - 別の操作を実行せずに SubmissionValidator.dll を更新します。
* [localize](#localize) - ディスク上のコンテンツに基づいて Resources.pri ファイルを生成します。

## pack

ディスク上のファイルから新しいアプリパッケージを作成します。

```text theme={null}
makepkg pack [options]
```

**使用例:**

```text theme={null}
makepkg pack /msixvc2 /f layout.xml /d <sourcedir> /pc /pd <destinationdir>
```

### オプション

| オプション                               | 説明                                                                                                                                                                                                    |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/msixvc2`                          | MSIXVC2 パッケージ形式でパッケージを生成します。このオプションがない場合、MSIXVC パッケージが生成されます。                                                                                                                                         |
| `/updcompat 3`                      | XVC および MSIXVC パッケージのサブファイルコンテンツ更新粒度を使用します。サポートされる値は `3` のみです。                                                                                                                                        |
| `/d <sourcedir>`                    | **(必須)** パッケージ化するコンテンツを含むソースディレクトリを指定します。                                                                                                                                                             |
| `/pd <destinationdir>`              | **(必須)** 生成されたパッケージの宛先ディレクトリを指定します。                                                                                                                                                                   |
| `/f <mapfile>`                      | パッケージ化に使用するマッピングファイルを指定します。省略した場合、既定の単一チャンクレイアウトが生成されます。                                                                                                                                              |
| `/compress <method>`                | 出力を圧縮します。利用可能な方式は `Automatic` (既定) と `None` です。`Automatic` は MSIXVC2 パッケージには Brotli を、XVC または MSIXVC パッケージには圧縮なしを使用します。                                                                               |
| `/pc`                               | PC で使用するパッケージを生成します。                                                                                                                                                                                  |
| `/contentid <contentid>`            | このパッケージが属するコンテンツ ID を指定します。                                                                                                                                                                           |
| `/gameos <gameos>`                  | パッケージに埋め込む game OS ファイルを指定します。                                                                                                                                                                        |
| `/l`                                | 一意のコンテンツライセンスでパッケージを暗号化します。XVC または MSIXVC パッケージを認定に提出する際は、認定チームから別途指示がない限り `/l` または `/lk` を使用します。                                                                                                     |
| `/lk <key.lekb>`                    | 指定されたキーファイルを使用してコンテンツライセンスでパッケージを暗号化します。キーファイルを生成するには `genkey` を使用します。XVC または MSIXVC パッケージを認定に提出する際は、認定チームから別途指示がない限り `/l` または `/lk` を使用します。                                                          |
| `/productid <productid>`            | このパッケージが属する製品 ID を指定します。                                                                                                                                                                              |
| `/maxencryptionfragments <count>`   | パッケージメタデータに予約する暗号化フラグメントの数を指定します。このオプションは XVC および MSIXVC パッケージにのみ適用されます。                                                                                                                              |
| `/priorpackage <OldPackage.msixvc>` | コンテンツ更新サイズ比較のために、以前のパック操作からの XVC、MSIXVC、または MSIXVC2 パッケージを指定します。                                                                                                                                      |
| `/loggable`                         | ログファイルに適さない制御文字を含む出力を抑制します。                                                                                                                                                                           |
| `/symbolpaths <symbolpaths>`        | シンボルバンドリング中のシンボル解決検索用の追加パスを指定します。パスをセミコロンで区切ります。                                                                                                                                                      |
| `/skipsymbolbundling`               | シンボルバンドリングをスキップします。                                                                                                                                                                                   |
| `/skipvalidation`                   | Submission Validator をスキップします。認定に提出される可能性のあるビルドではこのオプションを使用しないでください。                                                                                                                                  |
| `/validationcritical`               | Submission Validator の失敗を `makepkg` プロセスにとって致命的な失敗として扱います。                                                                                                                                            |
| `/openvalidationlog`                | 検証後、既定の XML アプリケーションで Submission Validator のログファイルを開きます。                                                                                                                                              |
| `/validationlanguage <lang>`        | Submission Validator のログファイルの追加言語を指定します。                                                                                                                                                              |
| `/validationpath <path>`            | SubmissionValidator.dll をロードするディレクトリを指定します。                                                                                                                                                           |
| `/updatesubval`                     | インストール済みバージョンが最新でない限り、検証前に最新の SubmissionValidator.dll をダウンロードします。`/validationpath` を使用して別の場所を選択します。更新が失敗した場合、インストール済み DLL を使用してパッケージ化または検証が続行されます。他の操作なしで更新するには [updatesubval](#updatesubval) を使用します。 |

### 備考

既定では、`makepkg pack` は、テスト用にすべての開発キットで認識される既知の暗号化キーを使用して XVC または MSIXVC パッケージを暗号化します。これらのパッケージは暗号的に保護されていません。

追加のアップロード保護のために、XVC および MSIXVC パッケージは `/l` または `/lk` を使用できます。`/l` を使用するパッケージは、アップロード前に開発キットや PC にインストールできません。`/lk` を使用するパッケージは、アップロード前に開発キットにインストールできます。アップロード暗号化モードに関係なく、XBOX サービスは Microsoft 管理の暗号化キーで配布用にパッケージを暗号化します。

MSIXVC2 パッケージはクライアント側のアップロード暗号化を使用しません。XBOX サービスが配布用の暗号化を処理します。

マッピングファイルのスキーマの詳細については、[デプロイパッケージスキーマ](/build/core-features/common/packaging/deployment/atoc-deployment-schema) を参照してください。

## upload

パッケージを Partner Center にアップロードします。MSIXVC2 のみの場合、`upload` コマンドは `/d` が指定されるとルーズファイルをパッケージ化して 1 回の操作でアップロードすることもできます。ルーズファイルのアップロードには `/msixvc2` オプションが必要です。

ブランチまたはフライトが指定されていない場合、パッケージは `main` ブランチにアップロードされます。

EKB ファイルと Submission Validator ログファイルはパッケージと同じディレクトリにあり、自動的にアップロードされます。シンボルバンドルも存在する場合はアップロードされます。Store ID はパッケージから抽出されますが、パッケージが Store ID なしで生成された場合は提供できます。

```text theme={null}
makepkg upload [options]
```

**使用例 (事前ビルド済みパッケージのアップロード):**

```text theme={null}
makepkg upload /pd <package_directory> /branch <branch> /auth CacheableBrowser
```

**使用例 (ルーズファイルのパッケージ化とアップロード):**

```text theme={null}
makepkg upload /d <sourcedir> /msixvc2 /pc /branch <branch>
```

### パッケージソースオプション

| オプション                     | 説明                                                                        |
| ------------------------- | ------------------------------------------------------------------------- |
| `/pd <package_directory>` | パッケージファイルまたはそのディレクトリを指定します。ディレクトリに複数のパッケージが含まれている場合は、完全なパッケージファイル名を指定します。 |
| `/d <sourcedir>`          | 1 回の操作でパッケージ化してアップロードするソースディレクトリを指定します。                                   |
| `/f <mapfile>`            | `/d` と共に使用するマッピングファイルを指定します。                                              |
| `/msixvc2`                | `/d` と共に使用すると MSIXVC2 パッケージを生成します。                                        |
| `/compress <method>`      | 出力を圧縮します。利用可能な方式は `Automatic` (既定) と `None` です。                           |
| `/pc`                     | `/d` と共に使用すると PC パッケージを生成します。                                             |
| `/productid <productid>`  | このパッケージが属する製品 ID を指定します。                                                  |

### 宛先オプション

| オプション                | 説明                                                         |
| -------------------- | ---------------------------------------------------------- |
| `/storeid <storeId>` | Store ID を指定します。省略した場合、Store ID はパッケージから抽出されます。            |
| `/branch <branch>`   | アップロード先のブランチを指定します。ブランチもフライトも指定されていない場合は `main` に既定設定されます。 |
| `/flight <flight>`   | アップロード先のフライトを指定します。このオプションは `/branch` と共に使用できません。          |
| `/market <market>`   | アップロード先のマーケットを指定します。既定は `default` です。                      |
| `/disclayout <path>` | 複数のディスクで出荷されるパッケージのディスクレイアウトファイルを指定します。                    |

### 認証オプション

| オプション                          | 説明                                                                                                                                                                                                                              |
| ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/auth <method>`               | 認証方式を指定します。既定は `CacheableBrowser` です。複数の方式は MSIXVC2 アップロードでのみ使用可能です。XVC および MSIXVC アップロードは `CacheableBrowser` のみを使用できます。これらの形式で高度な認証を行うには、[Package Uploader](/build/core-features/common/packaging/package-uploader) を使用してください。 |
| `/tenantid <tenantId>`         | アップロード先のテナントを指定します。省略した場合、ユーザーの既定のテナントが使用されます。                                                                                                                                                                                  |
| `/clientid <clientId>`         | クライアント ID を指定します。`ManagedIdentity`、`ClientCertificate`、および `ClientSecret` で必須です。                                                                                                                                                |
| `/clientsecret <secret>`       | クライアントシークレットを指定します。`/auth ClientSecret` が必要です。                                                                                                                                                                                  |
| `/certthumbprint <thumbprint>` | `ClientCertificate` の証明書の拇印を指定します。                                                                                                                                                                                              |
| `/certstore <store>`           | 証明書ストア名を指定します。既定は `My` です。                                                                                                                                                                                                      |
| `/certlocation <location>`     | 証明書の場所 (`CurrentUser` または `LocalMachine` など) を指定します。既定は `CurrentUser` です。                                                                                                                                                       |
| `/certpassword <password>`     | パスワードで保護された証明書ファイルのパスワードを指定します。                                                                                                                                                                                                 |
| `/resourceid <resourceId>`     | `ManagedIdentityFederated` の Azure リソース ID を指定します。                                                                                                                                                                              |

### 検証およびシンボルオプション

| オプション                        | 説明                                                                              |
| ---------------------------- | ------------------------------------------------------------------------------- |
| `/skipvalidation`            | Submission Validator をスキップします。                                                  |
| `/validationcritical`        | Submission Validator の失敗を致命的な失敗として扱います。                                         |
| `/validationlanguage <lang>` | Submission Validator のログファイルの追加言語を指定します。                                        |
| `/validationpath <path>`     | SubmissionValidator.dll をロードするディレクトリを指定します。                                     |
| `/updatesubval`              | 検証前に最新の SubmissionValidator.dll をダウンロードします。失敗時の動作については [pack](#pack) を参照してください。 |
| `/symbolpaths <symbolpaths>` | セミコロンで区切られた追加のシンボル解決パスを指定します。                                                   |
| `/skipsymbolbundling`        | シンボルバンドリングをスキップします。                                                             |

### 認証方式

| 方式                         | 説明                                                           |
| -------------------------- | ------------------------------------------------------------ |
| `CacheableBrowser`         | インタラクティブなサインイン用にブラウザーを開き、資格情報をキャッシュします。この方式は既定です。            |
| `Browser`                  | 資格情報をキャッシュせずにインタラクティブなサインイン用にブラウザーを開きます。                     |
| `AzureCli`                 | Azure CLI 資格情報を使用します。                                        |
| `AzurePipelines`           | Azure Pipelines サービス接続を使用します。                                |
| `ManagedIdentity`          | Azure マネージド ID を使用します。`/clientid` が必要です。                     |
| `ManagedIdentityFederated` | フェデレーションマネージド ID を使用します。`/clientid` と `/resourceid` が必要です。   |
| `ClientSecret`             | クライアント ID とシークレットを使用します。`/clientid` と `/clientsecret` が必要です。 |
| `ClientCertificate`        | クライアント証明書を使用します。`/clientid` と `/certthumbprint` が必要です。       |
| `Environment`              | 環境変数から資格情報を使用します。                                            |
| `Default`                  | 複数の認証方式を順次試行します。                                             |

## genkey

`pack /lk` で使用するローカルエスクローキー blob (LEKB) を生成します。

```text theme={null}
makepkg genkey [options]
```

| オプション            | 説明                                                                                      |
| ---------------- | --------------------------------------------------------------------------------------- |
| `/ekb <ekbfile>` | 生成された LEKB ファイルのパスを指定します。`makepkg pack` が生成する `.ekb` ファイルと区別するために `.lekb` 拡張子を使用してください。 |

`makepkg pack /lk` に LEKB ファイルを提供して、パッケージ作成中に安定した暗号化キーを使用します。このキーは以下を可能にします。

1. `packageutil compare` が正確な更新サイズの見積もりを生成できるようにします。
2. コンソールと PC がコンテンツ更新をダウンロードするのと同じアルゴリズムを使用して、Partner Center への安全なデルタアップロードを可能にします。
3. 開発キットにインストールできるパッケージを生成します。
4. 特定の環境でのみ復号化できる安全な暗号化キーマテリアルを使用します。

LEKB ファイルには軽く難読化された暗号化キーマテリアルが含まれています。LEKB ファイルとパッケージの両方を持っている人は誰でもパッケージを復号化できるため、ファイルへの安全なアクセスを確保してください。

## genid

Product ID GUID と Store ID の間で変換します。

```text theme={null}
makepkg genid [options]
```

| オプション                    | 説明                           |
| ------------------------ | ---------------------------- |
| `/storeid <storeId>`     | 変換する Store ID を指定します。        |
| `/productid <productId>` | 変換する Product ID GUID を指定します。 |

## genmap

ディスク上のコンテンツに基づいてマッピング XML ファイルを生成します。生成されたファイルには 1 つのチャンクが含まれており、コンテンツを複数のチャンクに分割したり、Intelligent Delivery タグを追加したりするために編集できます。

```text theme={null}
makepkg genmap /f <mapfile> /d <contentdirectory>
```

| オプション                   | 説明                              |
| ----------------------- | ------------------------------- |
| `/f <mapfile>`          | 生成されたマッピングファイルのパスを指定します。        |
| `/d <contentdirectory>` | 内容がマッピングファイルに追加されるディレクトリを指定します。 |

## validate

パッケージを作成せずにパッケージ検証を実行します。完全なパック操作の前にコンテンツと構成を検証するには、このコマンドを使用します。

```text theme={null}
makepkg validate [options]
```

`validate` コマンドは [pack](#pack) と同じオプションを受け付けます。

## updatesubval

パッケージの作成、検証、またはアップロードを行わずに、最新の SubmissionValidator.dll をダウンロード、検証、およびインストールします。

```text theme={null}
makepkg updatesubval [/validationpath <path>]
```

### オプション

| オプション                    | 説明                                                                                                                 |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------ |
| `/validationpath <path>` | SubmissionValidator.dll を含む、または受け取るディレクトリを指定します。省略した場合、コマンドは `makepkg` ツールディレクトリ、次に `%GameDK%\bin` ディレクトリをチェックします。 |

### 備考

SubmissionValidator.dll がすでに最新バージョンの場合、コマンドは最新であることを報告し、ダウンロードせずに正常終了します。ファイルが見つからない場合、コマンドはそれをインストールします。成功時に、コマンドはディスク上の SubmissionValidator.dll のバージョンを表示します。

パッケージ化または検証中に使用される `/updatesubval` オプションとは異なり、スタンドアロンの `updatesubval` コマンドは更新が失敗した場合にゼロ以外の終了コードを返します。オプションとして使用される場合、更新の失敗は致命的ではなく、パッケージ化または検証操作はインストール済みバージョンの SubmissionValidator.dll を使用して続行されます。

## localize

ディスク上のコンテンツに基づいて Resources.pri ファイルを生成します。

```text theme={null}
makepkg localize /d <sourcedir> [options]
```

| オプション                  | 説明                                                                   |
| ---------------------- | -------------------------------------------------------------------- |
| `/d <sourcedir>`       | **(必須)** ローカライズするコンテンツを含むソースディレクトリを指定します。                            |
| `/resw <reswdir>`      | RESW ファイルを含む、ルートディレクトリからの相対ディレクトリを指定します。                             |
| `/pd <outputdir>`      | Resources.pri の出力ディレクトリを指定します。省略した場合、ファイルはコンテンツディレクトリに配置されます。        |
| `/t <tempdir>`         | Resources.pri を XML に変換するための一時ディレクトリを指定します。                          |
| `/gc <gameconfigpath>` | ファイルがコンテンツディレクトリの直下にない場合や別の名前を使用する場合の MicrosoftGame.config パスを指定します。 |

詳細については、[MicrosoftGame.config のローカライズ](/build/core-features/common/game-config/MicrosoftGameConfig-Localization) を参照してください。

## 関連トピック

[MSIXVC2 パッケージングの概要](/build/core-features/common/packaging/overviews/packaging-msixvc2-overview)

[PC 向け MSIXVC2 の使い始め](/build/core-features/common/packaging/overviews/packaging-getting-started-for-PC-msixvc2)

[デプロイパッケージスキーマ](/build/core-features/common/packaging/deployment/atoc-deployment-schema)

[XBOX Game Package Manager](/build/core-features/common/packaging/xgpm)

[パッケージアップロードの自動化](/build/core-features/common/packaging/package-uploader)


## Related topics

- [packageutil.exe](/ja-jp/build/core-features/common/packaging/deployment/packageutil.md)
- [デプロイパッケージスキーマ](/ja-jp/build/core-features/common/packaging/deployment/atoc-deployment-schema.md)
- [MSIXVC2 暗号化モデル](/ja-jp/build/core-features/common/packaging/packaging-encryption-msixvc2.md)
- [MSIXVC2 パッケージング概要](/ja-jp/build/core-features/common/packaging/overviews/packaging-msixvc2-overview.md)
- [MSIXVC2 によるコンテンツ更新](/ja-jp/build/core-features/common/packaging/packaging-updates-msixvc2.md)
