ライセンス テストの有効化
この記事では、ライセンス関連のシナリオをテストするために、開発ビルドをライセンス可能に設定する方法について説明します。
関連するシナリオと API
次の API では、適切にテストするために、このページで説明されている設定が必要です。
API | 使用方法 |
---|---|
XStoreQueryGameLicenseAsync | 試用版の特性、またはゲームがディスクでライセンス付与されていることをクエリする |
XStoreQueryLicenseTokenAsync | サービス ベースの検証用の有効なライセンス トークンの生成については、「ライセンス トークンの使用」を参照してください |
XStoreQueryAddOnLicensesAsync | デジタル ゲーム ライセンスにアタッチされているアドオン ライセンスの返却 (パッケージなしの非消費型アイテムなど) |
XStoreRegisterGameLicenseChanged | ライセンスの変更の検出を登録 (試用版からフル ライセンへなど) |
Context
小売シナリオでは、ゲームにプレイするライセンスが必要です。 これは、ディスクまたは Microsoft サービスへのライセンス要求の成功によって満たされるライセンス要求によって実現されます。 直接購入または満足のいく購入 (サブスクリプションやバンドルなど) を通じて、アカウントが製品に対する権利を持っている場合、ライセンスが付与されます。 ライセンスは共有シナリオでも付与できます。詳細については、「 ゲームの製品共有モデル」を参照してください。
開発シナリオは、既定ではこの動作に従いません。
- ルーズ ビルド (Visual Studio F5 のデプロイ、xbapp/wdapp の登録/デプロイ)
- ローカル パッケージ ビルド (makepkg、xbapp/wdapp のインストール)
これらのビルドは、ライセンスチェックや関連する構成なしで起動します。
ほとんどの XStore
API は、ライセンスに関連するものを除き、引き続き機能します。
ライセンス可能として動作するようにビルドを構成するには、正しい ID 値を MicrosoftGameConfig に適用する必要があります ( 「XStore の開発とテストの有効化」で説明されています)。
その後、次の手順を実行する必要があります。
その後、ビルドを実行するアカウントごとに、プラットフォームの適切なストアから製品を購入して権利を取得する必要があります。
ContentID を取得する
これは [パッケージ] ページ内の [詳細を表示しています] の後にあります。
注意
サンドボックスとリテールの間でコンテンツ ID が異なる場合があります。ゲームのリテール バージョンがインストールされていて、サンドボックスで作業する場合は注意してください。 リージョン パッケージが含まれている場合、コンテンツ ID も異なります。
本体
これは、ゲーム コマンド プロンプトで xbapp list /d
(DLC の場合は xbapp listdlc /d
) を実行して Store からインストールされたパッケージにもあります。
Registered Applications by Package Full Name:
41336MicrosoftATG.InGameStoreXS_2020.7.27.0_neutral__dspnxghe87tn0
Install
Drive: Development
Size: 0.28 GB.
ContentId: {2797FA46-A93B-494C-AD80-B67C9FCA939F}
ProductId: {4C544E39-5130-3044-C057-5A3446536A00}
EKBID: {37E80840-6BE0-46F8-8EDB-92F877056087}
DisplayName: ATG In-Game Store Sample
41336MicrosoftATG.InGameStoreXS_dspnxghe87tn0!Game
PC
これは、Xbox App または Microsoft Store からパッケージがインストールされた後、レジストリの場所で確認できます: Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Store\ContentId
コンテンツ ID を適用してビルドする
ルース ビルドの場合は、MicrosoftGameConfig で次のセクションを追加します。
<DevelopmentOnly>
<ContentIdOverride>2797FA46-A93B-494C-AD80-B67C9FCA939F</ContentIdOverride>
<EKBIDOverride>00000000-0000-0000-0000-000000000001</EKBIDOverride>
</DevelopmentOnly>
パッケージ ビルドの場合は、コンテンツ ID を makepkg
に渡します (例:
makepkg pack /v /f chunks.xml /d Gaming.Xbox.XboxOne.x64\Layout\Image\Loose /pd ./output /contentid 2797FA46-A93B-494C-AD80-B67C9FCA939F
/contentid を使用せずに作成されたパッケージ ビルドは、ローカル ソースからインストールされたときに MicrosoftGameConfig で使用可能な ContentIdOverride
を適用します。
ストア (サンドボックスまたはリテール) からインストールされたビルドには、常に適切なコンテンツ ID (パートナー センターに表示) が適用されます。
ビルドに EKBID を適用する (コンソールにのみ適用)
EKBID (エスクロー キー BLOB ID) は、ビルドをライセンス可能にするためにコンソールにのみ設定する必要があります。 ほとんどのシナリオでは、すべてのゼロまたは 33EC8436-5A0E-4F0D-B1CE-3F29C3955039 の既定のテスト値からオーバーライドする必要があります。
これを行うには、次のコマンドを実行します。
xbapp setekbid <package full name> {<GUID that is not all zeroes or 33EC8436-5A0E-4F0D-B1CE-3F29C3955039>}
例:
xbapp setekbid 41336MicrosoftATG.InGameStoreXS_2020.7.27.0_neutral__dspnxghe87tn0 {00000000-0000-0000-0000-000000000001}
これは PC には関係ありません (つまり、いいえ wdapp setekbid
)。
試用版と EKBID
試用版の場合は、実際の EKBID を適用する必要があります。
これは、ストアからインストールされたビルドについて、上記の出力 xbapp list /d
から確認できます。
詳細については、「ゲームの試用版の実装」を参照してください。
テスト アカウントに、サンドボックス内のゲームに対する権利が付与されていることを確認する
これを行う最も簡単な方法は、サンドボックスにのみ公開された製品は検索できない可能性があるため、プロトコルのアクティブ化を通じてゲームのストア ページに直接移動することです。 開発機本体または PC は、ゲームが公開されているサンドボックスに設定する必要があります。 詳細については、「 Xbox サービスサンドボックスの概要 」、特に PCにおいては「ストア操作のためにサンドボックスを適切に切り替える」を参照 してください。
サインインしたら、ストア プロトコル リンクを使用して Store ページにアクセスします。
本体の場合:
ゲーム コマンド プロンプトを使用します。
xbapp launch ms-windows-store://pdp/?productid=<storeID>
PC の場合:
[ファイル名を指定して実行] ボックス (⊞Win + R) または Web ブラウザー
msxbox://game/?productId=<storeID>
(Xbox アプリでゲームを表示)
または
ms-windows-store://pdp/?productid=<storeID>
(Microsoft Store でゲームを表示)
Store ページが表示されたら、[購入] または [取得] を選択して、ご自身のテスト アカウントのゲームのライセンスを取得します。 これでパッケージのダウンロードとインストールが開始されますが、ローカル ビルドの反復処理にのみ関心がある場合は、キャンセルしてかまいません。
: これは、ビルドを実行し、ライセンス関連の XStore API が機能することを想定しているすべてのアカウントごとに行う必要があります。
DLC
ローカル DLC をライセンス可能にするには、コンテンツ ID を makepkg
と xbapp setekbid
に適用し、既定値以外の値に設定する必要があります。
基本ゲームではなく、ライセンス用に DLC のみを構成する必要があります。
これは、次の API に関連します。
- XStoreAcquireLicenseForDurablesAsync
- XStoreAcquireLicenseForPackageAsync
- XStoreCanAcquireLicenseForPackageAsync
- XStoreCanAcquireLicenseForStoreIdAsync
- XStoreRegisterPackageLicenseLost
詳細については、こちらを参照してください。