次の方法で共有


サブミッション バリデーターによる品質チェック

提出からサーティフィケーションを経てマーケット リリースに至るまでの過程をスムーズにするという目標に向けて取り組むために、サブミッション バリデーターが識別する問題の種類は徐々に成長し、進化しています。

サブミッション バリデーターは、以下の品質チェックを実行します。

使用可能なバージョン

サブミッション バリデーターは、インストールされているバージョンが最新で正しいバージョンであることを確認します。 そうではない場合、サブミッション バリデーターの出力ログにエラーが記録されます。 このエラー メッセージには次のように、正しいバージョンをダウンロードするためのリンクが含まれます。

<component>Available Version Check</component>
<failure>A required update to Submission Validator is available. The latest version can be downloaded from https://aka.ms/currentsubvalzip. Download and install the update, then rebuild the package. Contact your 
Developer Account Manager for assistance.</failure> 

承認済み GDK バージョン

PC (msixvc) 用の GDK パッケージを作成する場合、サブミッション バリデーターによって、パッケージ化に使用される GDK が承認された GDK バージョンのものであるかどうかが確認されます。 以下に示すように、承認済みまたは非推奨のリストに含まれていないバージョンの場合、バリデーターのログにエラーが記録されます。

<failure>ILI_PcGdkUnsupportedThe GDK used to compile your binaries is not supported. Use only supported GDK versions according to the Approved Libraries page located at https://aka.ms/GdkApprovedLibs</failure>

そのバージョンが非推奨リストで見つかった場合は、バリデーター ログに情報メッセージが出力されます。これは、次に示すように、当該バージョンで最初にリリースされたタイトル向けのコンテンツ更新に対してのみ有効であることを示しています。

<info>The GDK used to compile your binaries is not approved for new title submissions. This GDK version is allowed only for Content Updates where the original release used this GDK version. Use only supported GDK versions according to the Approved Libraries page located at  http://aka.ms/GdkApprovedLibs</info>

パッケージに含まれるファイルから GDK バージョンを判別できない場合。 たとえば、パッケージに含まれるファイルのデータ暗号化により、サブミッション バリデーターがバージョン情報を抽出できなくなる可能性があります。 この場合、次のメッセージが表示されます。

<info>A GDK version was not able to be extracted from your game executable. The version of the tools used for packaging will be used as the GDK version for this submission. If this is not correct, ensure any executables listed in your MicrosoftGame.config include XGameRuntime.h or you include appropriate middleware which consumes this header. See https://aka.ms/EmbeddedGdkVersion for more information.</info>

承認済みの Game OS

サブミッション バリデーターは、Game OS および Microsoft Game Development Kit (GDK) からのオプション コンポーネントが、同じリリースの Microsoft Game Development Kit (GDK) からのものであり、リリース タイトルでの使用が承認されたバージョンであることを確認します。 以下に示すように、承認済みまたは非推奨のリストに含まれていないバージョンの場合、バリデーターのログにエラーが記録されます。

<failure>The GameOS included in this package is not an approved version. Use only 
supported GameOS versions according to the Approved Libraries page on the Developer 
Network Portal</failure>  

そのバージョンが非推奨リストで見つかった場合は、バリデーター ログに情報メッセージが出力されます。これは、次に示すように、当該バージョンで最初にリリースされたタイトル向けのコンテンツ更新に対してのみ有効であることを示しています。

<info>The GameOS included in this package is not approved for new title submissions. 
This version is allowed only for Content Updates where the original release used this 
version. Use only supported GameOS versions according to the Approved Libraries page on 
the Developer Network Portal</info>  

コンポーネントのバージョンが相互に一致しない場合、またはバージョンが承認リストまたは非推奨リストにない場合は、次の例のようなエラーが記録されます。

<failure>The GameOS version does not match the version of other Microsoft components 
included in this package. Use only components from the same Microsoft Game Development Kit (GDK)/Xbox One Software Development Kit release. Refer to the 
Approved Libraries page on the Developer Network Portal</failure>  

注意

実行中の開発用 PC がインターネットにアクセスできない、ファイアウォールによってブロックされている、ネットワーク接続がないなどで、オンライン情報にアクセスできない場合は、サブミッション バリデーターによる検証チェックが完了しないことがあります。

コンテンツの最終チャンク内の起動マーカー (ダウンロード コンテンツ (DLC))

すべてのシナリオで適切に動作させるためには、コンテンツ パッケージによって最終チャンクが起動マーカー属性でマークされる必要があります。 最後のチャンクに起動マーカーが含まれていない場合、そのパッケージを正常にテストできても、場合によってはエンド ユーザーに問題を引き起こす可能性があります。 エラー メッセージは次のように表示されます。

<failure>Content Packages require final layout chunk to include attribute marker="Launch"</failure>  

追加の Resources.pri ファイル

サブミッション バリデーターは、レイアウトの他のディレクトリに追加の Resources.pri ファイルが存在しないことを確認します。 MicrosoftGame.config と同様に、ルートにあるものだけが使用されます。 ただし、複数のコピーがあると、どちらが正しいのか、また、それらの他のファイルに関する開発者の意図が何かということで混乱を招く可能性があります。

これは、MicrosoftGame.config の追加コピーと同様のチェックに相当します。この場合、以下のように、追加のコピーによって、ログの外部ファイルのチェック セクションでエラーが記録されます。

<failure>D:\path\mytitle\mytitlesubdirectory\resources.pri</failure>  

Resources.pri ファイルの不足

アプリケーションをローカライズする必要はありませんが、アプリケーションのルート (MicrosoftGame.config と同じ場所) に Resources.pri ファイルが含まれていない場合、出力ログの外部ファイルのチェック セクションに次の警告が記録されます。

<warning>Non-localized app: 'resources.pri' is missing</warning>  

パッケージ毎に 1 つのアプリケーション

サブミッション バリデーターにより、パッケージに含まれる非 DevOnly アプリケーションがパッケージごとに 1 つだけであることが検証されるようになりました。

最大パッケージ サイズ

ディスクで出荷する場合、サブミッション バリデーターによって、パッケージが最大パッケージ サイズ (49,900,000,000 バイト) を超えていないことが確認されます。 これは情報提供メッセージであり、失敗ではありません。

ディスクで出荷しない場合、サブミッション バリデーターによって、パッケージが最大パッケージ サイズの 500 GB を超えていないことが確認されます。 また、パッケージ サイズが 450 GB を超える場合にも警告メッセージが表示されます。 メッセージは次のとおりです。

(WARNING) ILI_XvcPackageSizeApproached: "The size of this package is approaching the maximum allowed size for uploading to Partner Center. The maximum size of a package for uploading to Partner Center is {0} GB."
(FAILURE) ILI_XvcPackageSizeExceeded: "The size of this package exceeds the maximum allowed size for uploading to Partner Center. The maximum size of a package for uploading to Partner Center is {0} GB."

外部ファイル

Xbox 360 プログラムの提出物のレビューで発生した問題の 1 つは、リテール タイトルに含めてはならないさまざまなファイルを (多くの場合は誤って) 提出物に含めることでした。

外部ファイルのチェックでは、レイアウト .xml ファイルを使用して、パッケージでは許可されていない特定のファイル名や拡張子について、タイトル パッケージに取り込まれたすべてのファイルをチェックします。 このチェックは、ファイルの内容ではなく、ファイル名のみに基づきます。 許可されていないファイルには、ソース ファイルとデバッグ ファイルに関連する拡張子、Thumb.db、ルートにあるもの以外の無関係な登録ファイル、およびタイトル パッケージに含めてはならない Xbox オペレーティング システムの全ファイルなどがあります。 このチェックは、Xbox の要件 XR-003「提出用タイトルの品質」を検証するために行われます。

次の表に、提出されるタイトル パッケージで許可されないファイルの種類と拡張子を示します。

ファイルの種類 拡張子
ソース コード関連ファイル .c、.cpp、.cs、.lib、.h、.obj
デバッグ/シンボル情報ファイル .pdb、.sym
従来のバイナリ ファイル .xbe

タイトルでは考えられるほとんどすべての拡張子が正当に使用される可能性があり、そのことが拡張子のチェックと矛盾することになる可能性があります。 これがタイトルにおける問題である場合は、開発者アカウント マネージャー (DAM) に問い合わせてください。

サブミッション バリデーターのログで "エラー" のメッセージを受け取っているタイトル パッケージにファイルを含める必要がある例外的なケースの場合は、担当の DAM に相談してください。

次の例は、外部ファイルのチェックでエラーが記録されたログ出力を示しています。

<component>Foreign File Check</component>
<failures>
  <failure>c:\MyTitle\loose\bar.cpp</failure>
  <failure>c:\MyTitle\loose\MySubDir\example.h</failure>
  <failure>c:\MyTitle\loose\MySubDir\PDBs\BlockedFiles\foo.pdb</failure>
</failures>
<filecount>3</filecount>  

バイナリ スキャン

Xbox 本体のバイナリ (.exe や .dll) ファイルは、AMD64 用にビルドされ、ネイティブ コードのみである必要があります。 現時点では、マネージド コードのバイナリはプラットフォームでサポートされていません。 バイナリ スキャン チェックでは、タイトル パッケージに含まれる各 .exe および .dll ファイルを検証し、これらの要件を満たしていることを確認します。 このチェックは、XR-003「提出用タイトルの品質」の検証で使用されます。

また、Binary Scan セクションでは、各 .exe および .dll ファイルに対して、セキュリティ上の理由によりリテール版本体ではブロックされる依存関係についてのチェックも行われます。 一般に、これは、プラットフォーム ファイルのデバッグ バージョン、PIXEvt.dll、または Xbox Studio にリンクする形を取ります。

次の例は、バイナリ スキャン チェックでエラーが記録されたログ出力を示します。 最初の 2 つのエラーは、リテール版本体で許可されていない 2 つのファイルに .exe ファイルがリンクされていることが原因です。 3 番目のエラーは、マネージド .exe ファイルです。 最後のエラーは、AMD64 ネイティブ コード以外の .dll ファイルです。

<component>Binary Scan</component>
      <dumpbinlocation>C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64\dumpbin.exe</dumpbinlocation>
      <failures>
   <failure>Non-retail dependency in file c:\MyTitle\loose\ExeWithDebugDependencies.exe: MSVCR110D.dll</failure>
  <failure>Non-retail dependency in file c:\MyTitle\loose\ExeWithDebugDependencies.exe: PIXEvt.dll</failure>
  </failures>
  <failure>Managed: Not AMD64: c:\MyTitle\loose\MySubDir\ABC.exe</failure>
  <failure>Not AMD64: c:\MyTitle\loose\MySubDir\XYZ.dll</failure>
</failures>  

開発者は、そのようなデバッグに重点を置いた依存関係が、提出パッケージに含まれるバイナリのリリース ビルドから除外されていることを確認する必要があります。

Microsoft(MS) コンポーネントのバージョン

Xbox では、プラットフォームのサーフェス領域の多くが Game OS に含まれています。 ただし、タイトルと共に再配布される Microsoft 提供の一連のバイナリがあります。 これらのファイルおよびそれらの承認済みバージョンは、Xbox Game Developer (XGD) サイトの承認済みライブラリに関するページにリストされています。

サブミッション バリデーターは、これらのファイルのバージョンをチェックして、オプションの .dll がすべて、一致するバージョンであることを確認します。 また、排他的パーティション タイトルの XVC にパッケージ化されている Game OS のバージョン ID もキャプチャーします。 開発者は、提出前にそれらのバージョンを公開された承認済みライブラリーの情報と照らし合わせて確認することが重要です。

さらに、オプションの Kinect および Xbox サービスの .dll ファイルがタイトルに含まれている場合、サブミッション バリデーターはそれらのバージョン情報の抽出も行います。

サブミッション バリデーターのログ ファイルに記録されるバージョン情報の例を次に示します。

<component>MS Component Versions</component>
<component name="GameOS">60BBA05C-22F0-4452-84B6-DD278594716E</component>
<component name="Microsoft.Xbox.Services.dll">10.0.18362.7198</component>  

依存ファイルが見つからない

依存ライブラリに対して動的にリンクする場合、サブミッション バリデーターが存在しない場合は、次のエラーが含まれます。

<failure>{0}: Binary file has a dependency on a file that is not included in the layout: {1}. This file must be included in the layout for your package.</failure>

関連項目

サブミッション バリデーター (SubmissionValidator.dll)

サブミッション バリデーターのメッセージ

パッケージの作成 (makepkg.exe)

タイトルのパッケージ化、コンテンツ アップデート (CU)、ストリーミングインストールのテスト

Xbox の要件 (XRs) ([Xbox 開発者ダウンロード]>[パートナー]、[公開]、[リリース管理情報]>[XGD パートナー ドキュメント] の順に移動)