Serve コマンド
serve
コマンドを使用すると、検証のために、指定したレイアウトを CTA で使用できるようにできます。
(pack
コマンドで作成された) パッケージ済みのタッチ アダプテーション バンドル、またはパッケージ化されていない一連のレイアウトを指定します。
次の表に、serve
コマンドで使用できるさまざまなオプションを示します。
オプション | 説明 |
---|---|
--takx , --takx-file <takx-file> |
提供するタッチ アダプテーション バンドルのパス。 このパラメーター、--layout-path 、または --takxconfig パラメーターのいずれかが必須です。 |
--takxconfig , --takx-config-file <takx-config-file> |
提供するバンドルを表す takxconfig.json ファイルへのパス。 このパラメーター、--layout-path 、または --takx パラメーターのいずれかが必須です。 |
--layout-path <layout-path> |
提供するバンドルに含めるルート レイアウト ディレクトリのパス。 このパラメーター、--takx-file 、または --takxconfig パラメーターのいずれかが必須です。
--takxconfig が指定されている場合、この引数は takxconfig.json ファイルで指定されたパスを上書きします。 |
--asset-path <asset-path> |
提供するバンドルに含めるルート アセット ディレクトリのパス。 バンドルにアセットがない場合、このパラメーターは必須ではありません。
--takxconfig が指定されている場合、この引数は takxconfig.json ファイルで指定されたパスを上書きします。 |
--context file <context-file> |
バンドルに含めるコンテキスト ファイルのパス。 バンドルにコンテキストがない場合、このパラメーターは必須ではありません。
--takxconfig が指定されている場合、この引数は takxconfig.json ファイルで指定されたパスを上書きします。 |
--default-layout <default-layout> |
既定のレイアウトの名前。 これは、レイアウト パスのひとつのファイルの名前と一致する必要があります。
--takxconfig が指定されている場合、この引数は takxconfig.json ファイルで指定された既定値を上書きします。 |
--version <version> |
タッチ アダプテーション バンドルのコンテンツ バージョン (1.0.0.0 など)。 タイトルのために Microsoft に提出される各タッチ アダプテーション バンドルには、送信済みの以前のタッチ アダプテーション バンドルよりも、意味的に大きいバージョン番号が必要です。 ゲームのストリーミング中に使用されているタッチ アダプテーション バンドルのバージョン番号は、XGameStreamingGetTouchBundleVersion を呼び出すことによって取得できます。
--takxconfig が指定されている場合、この引数は takxconfig.json ファイルで指定されたバージョンを上書きします。 |
--version-name <version-name> |
タッチ アダプテーション バンドルのコンテンツ バージョンの名前 ("DLC 1" など)。 バージョン番号とは異なり、バージョン名は省略可能であり、その形式に要件はありません。 ゲームのストリーミング中に使用されているタッチ アダプテーション バンドルのバージョン名は、XGameStreamingGetTouchBundleVersion を呼び出すことによって取得できます。
--takxconfig が指定されている場合、この引数は takxconfig.json ファイルで指定されたバージョン名を上書きします。 |
--no-asset-optimization |
効率的な記憶域と通信のためにアセットを最適化していないことを確認します。 セットされている場合、アセットは変更されません。 |
--no-verify |
生成されたタッチ アダプテーション バンドルが有効で確認されていないことを確認します。 |
--language <language> |
生成されたバンドルに含める言語の IETF 言語タグが使われます。 このパラメーターを複数回指定した場合、提供されるすべての言語が含まれます。 パラメーターを指定しない場合、ソース ディレクトリに見つかったすべてのレイアウトとアセットがバンドルに含まれます。
--takxconfig が指定されている場合、この引数は takxconfig.json ファイルで指定された言語を上書きします。 |
--port <port> |
タッチ アダプテーション バンドルを提供するポート。 既定のポートは 9269 です。 |
--host <host> |
タッチ アダプテーション バンドルを提供するホスト。 既定のホストは 0.0.0.0 です。これにより、すべてのネットワーク インターフェイスでバンドルが有効になります。 サーバーをループ バックのみで利用可能にするには localhost を使います。または特定の IP を使用してサーバーを利用できるインターフェイスを制御します。 |
--certificate-file <certificate-file> |
セキュリティで保護された HTTPS 要求に対してサーバーを認証するための .pfx 証明書ファイルへのパス。 このフラグは、ツールが認証済みの HTTPS サーバーをホストするために必要です。 ⚠️ 注:Web コンテンツ テスト アプリケーション (CTA) は、 https とこのオプションを使用するリモート サイドロード サーバーにのみ接続できます。 |
--certificate-password <certificate-password> |
証明書データにアクセスするために必要なパスワード。 |
--password <password> |
クライアントを認証するためのパスワード。 これは、https 経由でサイドロードするときにタッチアダプテーション バンドルへのクライアント アクセスを制限するオプションのフラグです。 クライアントを正常に認証するには、指定されたパスワードが GameStreaming アプリのクライアントの開発者設定で指定されたパスワードと一致する必要があります。 |
例
ホストでタッチ アダプテーション バンドルを提供するには、次のコード例を使用します。
既定のポートとホストでレイアウト パス内のすべてのレイアウトを提供し、特定のバージョン/バージョン名を宣言する
C:\>tak serve --layout-path C:\tmp\layouts --version 1.0.0.2 --versionName DLC2
Verifying touch adaptation bundle 'C:\tmp\layouts'.
Now listening on: http://0.0.0.0:9269
Application started. Press Ctrl+C to shut down.
Hosting environment: Production
Content root path: C:\tmp
指定したタッチ アダプテーション バンドルを localhost 経由でのみ提供する
C:\>tak serve --takx-file C:\tmp\MyGameLayouts.takx --host localhost
Now listening on: http://localhost:9269
Application started. Press Ctrl+C to shut down.
Hosting environment: Production
Content root path: C:\tmp
証明書の生成手順
認証されたセキュリティで保護されたサーバーをホストしてタッチ バンドルをサイドロードするには、証明書が必要です。 適切な SSL 証明書を使用できますが、以下の手順では証明書も作成されます
Xbox ゲーム ストリーミング ツール GitHub から自己署名証明書を生成するスクリプトを取得する
a. 上記のリンクに移動し、[raw] を選択し、スクリプトの内容をコピーしてローカル コンピューター上のドキュメントに貼り付けます
b. または、PowerShell で次のコマンドを実行してスクリプトをダウンロードします
Invoke-WebRequest -Uri https://raw.githubusercontent.com/microsoft/xbox-game-streaming-tools/main/touch-adaptation-kit/scripts/Create-SelfSignedCertificate.ps1 -Out ./Create-SelfSignedCertificate.ps1
注意
Create-SelfSignedCertificate.ps1 スクリプトは Windows でのみ機能します。 有効な自己署名証明書を生成するためのツールが他のオペレーティング システムに存在する可能性があります
- ダウンロードしたスクリプトを PowerShell で実行します。
- このスクリプトでは、証明書をセキュリティで保護するためのパスワードの入力を求められます。 ここに入力してパスワードを設定します。 このパスワードは、serve コマンドの –certificate-password フラグへの入力として使用されます。
これにより、
sideload.pfx
とsideload.cer
の 2 つのファイルが生成されます。sideload.pfx
証明書ファイルへのパスは、serve コマンドの –certificate-file フラグへの入力として渡されます。
異なるクライアントで証明書を信頼する
.cer ファイルをデバイスに読み込みます。 これは、メール、OneDrive、USB、ADB、AirDrop などを使用して行うことができます。指定されたデバイスに適した通常の方法で証明書を信頼します。
Windows
-
sideload.cer
ファイルをダブルクリックします。 - [証明書のインストール] を選択します。 証明書のインポート ウィザードが開きます。
- ストアの場所として [現在のユーザー] を選択します。
- 次のウィンドウで、[すべての証明書を次のストアに配置する] を選択し、[信頼されたルート証明機関の参照] を選択します。
Android
Android デバイスで、[設定] > [セキュリティ] > [詳細設定] > [暗号化と資格情報] > [ストレージからインストール] の順に移動します。
[CA 証明書] を選択して証明書をインストールし、前のセクションでダウンロードした
sideload.cer
ファイルを参照しますインストール後、この証明書は [信頼された資格情報] > [ユーザー] で表示できます
詳細については Google のドキュメント を参照してください。
iOS
- iOS デバイスの [ファイル アプリケーション] に移動して、デバイス プロファイルに .cer ファイルをインストールします
- .cer ファイル プロファイル名に基づいて新しいプロファイルを生成する必要があります。 これは、[設定] > [全般] > [プロファイルとデバイス管理] にあります。
- 証明書をインストールします。 証明書の署名が検証済みとして表示されるはずです。
- インストールされている証明書をテストするには、[設定] > [全般] > [バージョン情報] > [証明書の信頼の設定] に移動します。 インストールしたばかりのルート証明書の完全信頼を有効にします。
詳細については Apple のドキュメント を参照してください。
例
ホスト上でセキュリティで保護してタッチ アダプテーション バンドルを提供するには、次のコード例を使用します。
既定のホスト上のレイアウト パス内のすべてのレイアウトと https 経由のポートを提供する
C:\> tak serve --layout-path C:\tmp\layouts --certificate-file C:\tmp\sideload.pfx --certificate-password "password"
Adding local loopback exemption for PC app connections.
OK.
Hosting starting
Now listening on: https://0.0.0.0:9269
Application started. Press Ctrl+C to shut down.
Hosting environment: Production
Content root path: C:\tmp
Hosting started
クライアントの認証後、既定のホストおよびポートでレイアウト パス内のすべてのレイアウトをセキュリティで保護して提供します。
C:\> tak serve --layout-path C:\tmp\layouts --certificate-file C:\tmp\sideload.pfx --certificate-password "certificatePassword" -password "password"
Adding local loopback exemption for PC app connections.
OK.
Hosting starting
User profile is available. Using 'AppData\Local\ASP.NET\DataProtection-Keys' as key repository and Windows DPAPI to encrypt keys at rest.
Now listening on: https://0.0.0.0:9269
Application started. Press Ctrl+C to shut down.
Hosting environment: Production