リリース チェックリスト

このチェックリストを使用して、PC 版 Google Play Games で審査に提出する前に、ゲームがすべての要件とベスト プラクティスを満たしていることを確認してください。

プロジェクトを設定して構成する

  • SDK をダウンロードしてインポートする: 環境に合わせて最新の Play Games PC SDK を統合します。詳しくは、Unity ガイドまたは C++ ガイドをご覧ください。
  • アプリのマニフェストを作成する: <PackageName> を申し立てた Google Play Console パッケージにマッピングする manifest.xml ファイルを作成します。詳しくは、マニフェスト ガイドをご覧ください。
  • 実行可能ファイルにデジタル署名する: Authenticode デジタル署名を使用してゲームに署名し、今後のすべてのアップデートのために証明書を保護します。デベロッパー モードを有効にすると、ローカル開発中にこの手順をスキップできますが、既知の認証局の実際のプロダクション証明書を使用して最終的なバイナリに署名する必要があります。詳しくは、ゲームにデジタル署名するをご覧ください。
  • 証明書の形式を設定して送信する: 証明書情報を Google の担当者に送信します。証明書ファイルには証明書関連の情報のみが含まれている必要があります。証明書以外のブロックがすべて削除されていることを確認します。OpenSSL を使用して、DER/CER ファイルを必要な PEM 形式に変換できます。

API と機能を統合する

  • SDK を初期化する: 他の機能を使用する前に、起動時に InitializeAsync などの SDK 初期化ロジックを実装します。詳細については、初期化ガイドをご覧ください。
  • シームレスなログインを実装する: Recall API を使用して、Play Games クライアント アカウントでプレーヤーを自動的に認証します。詳しくは、シームレス ログイン ガイドをご覧ください。
  • Play Integrity を統合する: IntegrityClient を使用してトークンをリクエストし、バックエンドでゲーム セッションの正当性を確認します。詳しくは、Play Integrity ガイドをご覧ください。
  • Play Install Referrer を追加: PC でユーザー獲得元をトラッキングする必要がある場合は、Install Referrer API を統合します。詳しくは、インストール リファラー ガイドをご覧ください。
  • 初期化エラーを処理する: SDK を使用するには、GooglePlayInitialize(C++)または GooglePlayInitialization.InitializeAsync(C#)を呼び出して API を初期化します。他の API を使用する前に、これを呼び出して、継続コールバックが InitializeResult::ok()(C++)で完了するか、Result.IsOk(C#)が true を返すことを確認する必要があります。
  • 強制シャットダウンを処理する: クライアント プロセスをできるだけ早くシャットダウンして kActionRequiredShutdownClientProcess を処理します。
  • Google Play Games のインストール要件を処理する: kSdkRuntimeUnavailable を処理します。ユーザーに、続行するには Google Play Games と SDK ランタイムをインストールする必要があることを通知します。
  • Google Play Games のアップデートを処理する: Google Play Games ランタイムのアップデートが必要であることをユーザーに通知して、kSdkRuntimeUpdateRequired を処理します。

Play 請求サービスを実装する

  • 購入タイプを確認する: 定期的な支払いと定期購入はサポートされていないため、ゲームがアプリ内購入のみに依存していることを確認します。詳しくは、お支払いに関するよくある質問をご覧ください。
  • 商品詳細のクエリ: QueryProductDetails を使用して、ローカライズされた店舗データを取得します。商品が 50 個を超える場合は、リクエストを複数の呼び出しに分割します。詳細については、クエリ プロダクトのガイドをご覧ください。
  • 購入フローを起動する: LaunchPurchaseFlow を使用して、トランザクションをネイティブに処理します。お支払いを行わずに支払いブラウザを閉じると、5 分のタイムアウト エラーが発生します。詳しくは、購入フローガイドをご覧ください。
  • 既存の購入を復元する: 起動時とフォアグラウンド化時に QueryPurchases を呼び出して、未確認のクロスデバイス購入をキャッチします。詳しくは、購入の復元ガイドをご覧ください。
  • バックエンド処理の保護: 利用資格を付与して AcknowledgePurchase または ConsumePurchase で確定する前に、バックエンドで purchaseToken を検証します。詳細については、安全な処理に関するガイドをご覧ください。
  • ライセンスキーの伝播遅延を考慮する: Google Play Console で新しい請求キーまたはライセンスキーを設定する場合は、バックエンド キャッシュがコマース サービング環境全体で同期されるまで数時間待ってから、ライブ購入テストを実施します。同期が完了する前に購入を試みると、エラーコード 6 が返されます。

デベロッパー モードでテストし、リリース前の QA を実施する

  • デベロッパー モードでテストする: マニフェストに <IsDeveloperMode>true</IsDeveloperMode> を追加し、ローカルの統合開発環境(IDE)テスト用に早期アクセス パートナー GUID を構成します。早期アクセス パートナー GUID がない場合は、お問い合わせフォームにご記入ください。
  • デベロッパー モードでの購入を管理する: デベロッパー モードでテスト購入を行う場合は、自動払い戻しを防ぐため、3 分以内に購入を消費してください。詳しくは、テストに関するよくある質問をご覧ください。
  • デベロッパー モードを削除する: リリースビルドをパッケージ化する前に、できるだけ早く <IsDeveloperMode> タグを削除する必要があります。詳しくは、デベロッパー モード ガイドをご覧ください。
  • サードパーティ ランチャーを使用して引数を転送する: ランチャーが Google Play Games クライアントから受け取った不明なコマンドライン引数をすべて、生成されたゲームプロセスに直接渡します。詳しくは、マルチプロセス ガイドをご覧ください。
  • VPN を使用してテストする: サポートされていない地域からテストする場合は、TUN モードが有効になっている VPN を使用して、サポートされている IP アドレスを取得します。詳しくは、VPN テストに関するよくある質問をご覧ください。
  • デスクトップ ショートカットのサポート: ショートカットをシームレスにサポートするには、ショートカットの実行についてショートカットに関するよくある質問を参照してください。ショートカットを使用してゲームやサードパーティ製ランチャーを直接起動すると、初期化エラーが発生する可能性があります。

ゲームをパッケージ化、テスト、公開する

  • WAB をパッケージ化する: Play Publishing Tool を使用して、ゲームを Windows App Bundle(WAB)にパッケージ化します。WAB ファイルは、インストーラ パブリッシングの場合は 10 GB、Google Play マネージド パブリッシングの場合は 200 GB のファイルサイズ上限を超えないようにする必要があります。詳しくは、パッケージング ガイドをご覧ください。
  • 最新の SDK とツールを使用する: Play Games PC SDK、Play Games PC Unity SDK、Play PC デベロッパー ツール、Play 画像公開ツールの最新バージョンを使用して、リリースをコンパイルしてパッケージ化します。
  • 昇格が必要かどうかを確認する: インストーラ、ランチャー、アンインストーラを起動するたびに管理者として実行する必要がある場合は、INSTALLER_REQUIRES_ELEVATIONLAUNCHER_REQUIRES_ELEVATIONUNINSTALLER_REQUIRES_ELEVATIONtrue に設定しているかどうかを確認してください。そうしないと、管理者権限で実行されず、起動に失敗します。詳細については、WAB 構成ファイルの形式をご覧ください。
  • サードパーティ製ランチャーのインストーラを送信する: サードパーティ製ランチャーを使用する場合は、そのインストーラを WAB 内で送信します。詳しくは、インストーラ公開ガイドをご覧ください。
  • 自動再生セッション トークンを処理する: play_publishing_config.xmlacceptsCommandLineArguments="true" を設定して自動再生を有効にする場合は、インストーラが --g_session_token=<token> コマンドライン引数を抽出し、それを使用してゲームを起動することを確認します。トークンが存在しない場合のフォールバック ケースをインストーラが処理するようにします。詳しくは、ランチャーに関するよくある質問をご覧ください。
  • ゲームとランチャーまたはインストーラを更新する: ランチャー インストーラなどのパッケージ コンテンツは、自己更新可能でなければなりません。ランチャー自体の更新など、ゲームに必要なすべてのリソースを管理します。
  • リリース情報を Google と共有する: Google Play パートナーに連絡し、パッケージ名、リリースする国(ISO 2 文字コードを使用。例: US、CA、MX)、リリース日時(協定世界時(UTC))を共有します。
  • テスト アクセスを設定する: テスト、ドキュメント、Google ドライブへのアクセスを許可リストに追加するための外部 Google グループを指定します。Google Play Console のテスト トラックは PC ではサポートされていないため、テスト アカウントのメールリストを Google Play パートナーと共有します。
  • PC フォーム ファクタを追加する: Google Play Console で、アプリに「PC 版 Google Play Games」フォーム ファクタを明示的に追加します。このタブにアクセスできない場合は、Google Play パートナーに連絡して、アカウントを許可リストに追加してもらってください。
  • PC の要件を構成する: Windows PC のハードウェア要件(RAM、GPU、ストレージ)を入力します。詳しくは、PC の要件に関するガイドをご覧ください。
  • ストア アセットをアップロードする: パッケージ化された WAB ファイルを製品版トラックにアップロードし、ビジュアル アセットを構成します。詳しくは、アセットのアップロードに関するガイドをご覧ください。
  • ユーザー環境のテスト用に公開する: Google Play Console で [公開] を選択します。Android 版とは異なり、WAB で [公開] を選択しても、一般公開はトリガーされません。代わりに、共有テスト アカウントでアプリを検索可能にして、Google の審査プロセスの後にユーザー環境でテストを実施します。
  • 正式リリース: Google は、Play パートナーと共有した正式リリース日に基づいてリリースを管理します。
  • 事前登録中のテスト: 事前登録フェーズでは、選択した事前登録地域に含まれない国で内部テストを実施する必要があります。
  • インストーラのプロセスの終了を確認する: 必要なレジストリキーがすべて作成され登録されるまで、プライマリ インストーラのプロセスがアクティブな状態を維持することを確認します。プロセスが途中で終了すると、インストール検証は失敗します。詳細については、インストーラの公開をご覧ください。

API から SDK に移行する

API から SDK への移行は省略可能な手順です。移行を選択する場合は、次の推奨事項に沿って操作してください。

  • 以前の REST API を削除する: 以前の Play Developer API 呼び出し(purchases.products.get など)をクライアントサイドの Native SDK 関数にマッピングします。詳細については、移行ガイドをご覧ください。
  • コマンドライン引数を確認する: SDK 環境のコマンドライン引数は、API 環境のコマンドライン引数と異なる場合があります。パッケージがすべての引数を正しく処理して渡すことを確認します。詳しくは、検証をご覧ください。
  • レジストリ パスを確認する: Native SDK へのシームレスな移行のため、レジストリ構成は以前のバージョンと一貫性を保つ必要があります。詳しくは、WAB ファイルのガイドをご覧ください。

関連情報