Version: 2018.3
CloudMoolah MOO Store
Unity Channel SDK と API 拡張

Unity IAP Xiaomi インテグレーションガイド

概要

Unity IAP は、中国国外の開発者のために、中国市場でアプリケーションをパブリッシュするための効率的なルートを提供しています。ここでは、Unity Channel SDK を紹介し、Xiaomi Mi Game Center プラットフォームに IAP コンテンツをパブリッシュする開発者にエンドツーエンド処理を説明します。

ゲームを Mi Game Center にパブリッシュするには、3 つの手順があります。

  1. Xiaomi 用に設定したゲームパッケージを Unity Cloud Build を通して提出します。
  2. Xiaomi-Unity Developer Portal で、ゲームのストアメタデータを取得します。
  3. Xiaomi の承認を得て、リリースします。

Xiaomi Mi Game Center

Mi Game Center は Xiaomi の公式な Android ストアです。 これにより、安全な支払いポータルを使用して Xiaomi プラットフォームのプロダクトを検索、閲覧、購入することができます。 詳細は、Unity-Xiaomi パートナーサイト を参照してください。

Unity Channel

Unity Channel は Unity IAP の内部コンポーネントで、ユーザーログイン、支払い管理、中国政府のアプリケーション配布に関する規制に対する承認を簡易にすることによって、中国国外の開発者が中国のアプリケーションストア市場にアクセスすることを支援します。

Unity Channel を使用するため、Xiaomi Mi Pay のインテグレーションは、Google Play や iTunes とは以下の点で異なります。

  • Xiaomi のゲームには Unity IAP カタログ が必要です。Google Play と iTunes は完全にバックエンドで定義されたプロダクトをサポートしています。しかし、Unity IAP に組み込まれる Xiaomi クライアントSDK は、クライアントで使用できるプロダクトID とメタデータによって異なります。
  • Codeless IAP サポートは計画されていますが、まだ利用できません (フォーラムでアップデートを確認してください)。
  • Unity IAP の初期化中、プロダクトの所有権情報はクライアントに返されません。そのため、開発者は、自身のサーバーかローカルのデバイスを使用してユーザーの購入を追跡する必要があります。

要件

  • Unity Channel SDK は Unity 2017.1 以降のバージョンに合わせて設計されています。ただし、バージョン 5.3 以上であれば互換性があります。
  • Unity Channel SDK は Unity IAP のバージョン 1.13.0 以上に含まれています。
  • Xiaomi IAP のサポートは Android ビルドにのみ可能です。適当な Android と Java の SDK が必要です。
  • Xiaomi にビルドをプッシュするには Unity Cloud Build サービスが必要です。
  • Xiaomi は現在、Codeless IAP 実装をサポートしていません。

Xiaomi 用プロジェクトのビルド

このセクションは、Unity IAP SDK を使って Unity エディターによってゲームを設定する以下の手順について説明します。

  • プロジェクトを設定する
  • Xiaomi パッケージをプロジェクトに加える
  • IAP を有効にする
  • IAP カタログを作成する

プロジェクトを設定する

Android 用に設定する

Xiaomi は Android ビルドのみをサポートします。以下の 4 つの手順に従ってプロジェクトを Android 向けに設定します。

  1. AndroidJava の SDK をダウンロードしてインストールします。詳細は、Android 用の開発を始める を参照してください。
  2. SDK ファイルパスのターゲットを設定します。Unity エディターで、Edit > Preferences (Windows) または Unity > Preferences (Mac) と選択し、左のナビゲーションペインから External Tools を選択します。 Android セクションにスクロールダウンして、 SDKJDK のそれぞれのフィールドに、Android と Java の SDK をインストールしたファイルパスを設定します (下の画像 1.1 を参照してください。各フィールドの横にある Download ボタンをクリックすると、各 SDK のダウンロードウェブページに直接アクセスします)。
  3. アプリケーションのパッケージ名を設定します。Xiaomi では、アプリケーションの パッケージ名 が BuildName.mi 規則に従う必要があります。Edit > Project Settings > Player を選択して、Player 設定ウィンドウを開きます。次に、Android タブ (下の画像参照) を選択し、Other Settings > Identification に移動し、Package Name フィールドを設定します (下の画像 1.2 を参照)。
  4. Android 用にプロジェクトをビルドします。エディターで、File > Build Settings と選択し、メニューから Android を選択します。Build を選択して、Unity が SDK を見つけてビルドをコンパイルできるかをテストします。
Image 1.1: Unity 内の Android と Java の SDK のファイルパスを指定
Image 1.1: Unity 内の Android と Java の SDK のファイルパスを指定
Image 1.2: Unity エディターの Android 設定で、アプリケーションパッケージ名を設定
Image 1.2: Unity エディターの Android 設定で、アプリケーションパッケージ名を設定

Xiaomi アセットパッケージをプロジェクトに加える

エディターの Services ウィンドウで Unity IAP を有効にします (Window > General > ServicesUnity IAP の設定 を参照)。インポートを指示する表示が現れたら、必ず IAP アセットパッケージをインポートしてください (下記の画像参照)。バージョン 1.13.0 時点で、Unity IAP アセットパッケージに Unity Channel と Xiaomi の SDK が含まれます。

Unity エディターの Services ウィンドウで Unity IAP を有効にし、Xiaomi SDK をインポートします
Unity エディターの Services ウィンドウで Unity IAP を有効にし、Xiaomi SDK をインポートします

[オプション] Standalone SDK

IAP 無しでアプリケーションを Mi Game Center にパブリッシュしたい場合は、Xiaomi Unity Channel スタンドアロン SDK を設定します。Build Settings ウィンドウ (File > Build Settings) の PlatformAndroid を選択し、表示された Xiaomi Game CenterAdd ボタンをクリックします。

Build Settings ウィンドウで Unity Channel スタンドアロン SDK をインストールします
Build Settings ウィンドウで Unity Channel スタンドアロン SDK をインストールします

アプリケーションストアの設定

Unity Channel には、アプリケーションストアの認証情報とテストモード機能を管理するためのエディターインターフェースを提供するアセットが含まれています。 この AppStoreSettings アセットは、Unity IAP アセットパッケージをインポートするときに Assets/Plugins/UnityChannel/XiaomiSupport/Resources にインストールされます。Assets > Create > App Store Settings を選択して、手動でエディターに作成することもできます。アセットを選択してインスペクターを表示し、インターフェースにアクセスします。

AppStoreSettings アセットは、アプリケーションの認証情報を管理するための GUI を提供します
AppStoreSettings アセットは、アプリケーションの認証情報を管理するための GUI を提供します

ノート: AppStoreSettings アセットは Unity 5.6 以降でのみ使用できます。

ゲームが Unity と Xiaomi の両方のサーバーと通信するためには、一意の識別子が必要です。検索フィールドでプロジェクトID を検索することによって、Unity Client の認証情報を調べられます。Unity 5.3 または 5.4 のユーザーは、AppStoreSettings アセットにアクセスできないので、この方法で認証情報を取得して設定する必要があります。上の図に示されている設定は以下の通りです。

  1. Generate Unity Client ボタンは、プロジェクトにバインドする Unity 認証情報を検索します。

    ノート: Unity クライアントの認証情報を生成、ロード、または更新すると、ネットワーク化されたリクエストが Unity のバックエンドサーバーに送信されます。この操作の進行状況がコンソールログに表示されます。

  2. Client IDClient Key は Unity IAP を通して Unity Channel と Xiaomi バックエンドと通信するために必要です。Unity Channel バックエンドは、レシート検証リクエストを送信します (詳細は、Unity IAP レシート検証 と、Unity Channel SDKレシート検証と拡張 API セクションを参照してください)。
  3. Client RSA Public Key はオプションのセキュリティ層です。クライアント側のレシート検証のコールバックを受け取ったり、Unity サーバー API と統合するために使用します。

    ノート: Client Secret は、サーバー側の検証を実装するときのためのもう 1 つのセキュリティ層です。Client Secret は他の認証情報を利用して自動生成され、AssetStoreSettings アセットから Update Client Secret を選択して、いつでも更新できます。

  4. 購入トランザクションデータを受け取るため、ゲームサーバーにオプションの Callback URL を設定します。
  5. Xiaomi は、送信処理によって App IDApp KeyApp Secret の認証情報を伝えます。パブリッシュする最終ビルドを送信する前に、それらの情報を App Store Settings に保存する必要があります。
  6. Test Mode は、アプリケーションの購入フローをテスト し、Xiaomi に提出する ために必要です。

これらの認証情報と、インテグレーションプロセスのさまざまな段階でテストモードを切り替える必要があります。App Store Settings のデータは、クライアントに保存するのではなく、サーバー側で更新されます。

IAP の実装

Unity IAP を有効にする

Xiaomi アセットパッケージをインポートする ために Unity IAP を使用可能にしたら、他に何もする必要はありません。Unity IAP を有効にする方法は、Unity IAP の設定 を参照してください。

Unity Asset Store を通して最新の Unity IAP プラグインをインストールすることもできます。

プロダクトカタログの作成

Unity IAP にビルドされる Xiaomi クライアント SDK は、クライアントで使用可能なプロダクトのメタデータに依存します。そのような場合、エディターの IAP Catalog ウィンドウ (Window > Unity IAP > IAP Catalog) でプロダクトを定義することが必要です。

IAP Catalog ウィンドウで、アプリケーションプロダクトカタログを作成しエクスポート
IAP Catalog ウィンドウで、アプリケーションプロダクトカタログを作成しエクスポート

カタログの作成: IAP Catalog ウィンドウは、ゲームクライアントのランタイムのメタデータと一緒にプロダクトを定義します。 Codeless IAP のドキュメントには、IAP Catalog を使用してプロダクトを設定するための情報が含まれます。 以下のプロダクト属性は、Xiaomi に特有のものです。

IAP Catalog ウィンドウ
IAP Catalog ウィンドウ
  1. ID は Mi Game Center に必要な一意の識別子 (文字列データ型) です。
  2. Type はプロダクトの有効期間を示します。Xiaomi は消費型と非消費型のプロダクトタイプをサポートしています。 サブスクリプションタイプのプロダクトはサポートしていません。
  3. Descriptions セクションでは、Mi Store で使用する TitleDescription を設定します。Locale ドロップダウンメニューから Simplified Chinese (これは現在サポートされている唯一の言語です) を指定する必要があります。
  4. Pay Configuration はプロダクトの価格ポイントを設定します。Unity Channel SDK は、Xiaomi の事前定義された中国元の Tier (価格帯) をサポートしますが、任意の値はサポートしません。

プロダクト属性とパラメーターに関して詳細は、プロダクトの定義 を参照してください。

Xiaomi の開発者ポータルにカタログをエクスポート

エディターの IAP Catalog ウィンドウで、App Store Export > Xiaomi Mi Pay Catalog の順に選択してカタログをエクスポートします。

Xiaomi Developer Portal にアプリケーションのプロダクトカタログをエクスポート
Xiaomi Developer Portal にアプリケーションのプロダクトカタログをエクスポート

MiGameProductCatalog.prop ファイルを選択した場所にエクスポートします。それから、プロダクトの IAP Configuration ページに移動し Import (後出の IAP プロダクトカタログのインポート 参照) を選択して、Xiaomi Developer Portal](https://developer.unity.mi.com/) にプロダクトカタログをインポートします。

Xiaomi Developer Portal のインターフェースに MiGameProductCatalog.prop ファイルを読み込む
Xiaomi Developer Portal のインターフェースに MiGameProductCatalog.prop ファイルを読み込む

IAP カタログをエクスポートすると、MiGameProductCatalog.prop ファイルのコピーがプロジェクトの Assets/Plugins/Android/assets/ に書き込まれます (下の図を参照)。Unity IAP は、このファイルを IAP Catalog エディターと実行時に使用します。Xiaomi Developer Portal からカタログファイルを明示的にインポートしない場合は、コピーがアプリケーションのデフォルトのプロダクトカタログとして使用されます。

エクスポートされたプロダクトカタログ
エクスポートされたプロダクトカタログ

クライアントサイドの初期化

Unity IAP には通常、 IAP カタログデータを送信先ストア用に解析する設定ビルダーが必要であり、その後に Unity IAP Initialize() API が必要です (IAP の初期化 に関するドキュメント参照)。

Xiaomi のゲームは IAP を初期化する前に追加の処理を必要とします。理由は、Mi Game Center は ログイン API を使用して、起動時にアプリケーションの認証情報を共有する必要があるためです。

変更された初期化プロセスは、以下の通りです。

  1. Unity Channel Xiaomi API を初期化します。
  2. Unity Channel Xiaomi API にログインします。
  3. 設定ビルダーのインスタンスを実行して Unity IAP を通常通り初期化し、次に Unity IAP initialize() API を呼び出します。

これらのステップをゲームのランタイムライフサイクルの早い段階、できれば、起動時に実行します。それらは同じスクリプトで実装できます。

1. Xiaomi ログイン

以下の例は、ログイン API を呼び出すために Unity Channel SDK を使って初期化を修正する方法を表しています。

using AppStoreSupport;
using System;
using System.Collections;
using UnityEngine;
using UnityEngine.Purchasing;
using UnityEngine.Store;

// ゲームの起動時に、スクリプトを 1 回実行します
public class UnityChannelSample : MonoBehaviour
{
    // Xiaomi ログインにはログインリスナーが必要です
    //Unity Channel SDK に含まれる ILoginListener 抽象クラス を実装してリスナーを作成します
    class SampleLoginListener : ILoginListener
    {
        public Action initializeIAP;

        // ステップ 1 成功、ステップ 2 を呼び出します
        public void OnInitialized()
        {
            Debug.Log("Initialization succeeded.");
            UnityEngine.Store.StoreService.Login(this); // 初期化が成功したら Xiaomi ログインを開始します
        }

        // ステップ 1 失敗、エラーメッセージとリソースを表示します
        public void OnInitializeFailed(string message)
        {
            Debug.Log("Initialization failed.");
        }

        // ステップ 2 終了、ステップ 3 を呼び出します
        public void OnLogin(UserInfo userInfo)
        {
            Debug.Log(string.Format("Login successful: userId {0}, userLoginToken {1}, channel {2}", userInfo.userId, userInfo.userLoginToken, userInfo.channel));
            // ログインが成功したら、IAP の初期化に進みます
initializeIAP(); 
        }

        // ステップ 2 が失敗したら、 エラーメッセージとリソースを表示します
        public void OnLoginFailed(string message)
        {
            Debug.Log("Login failed.");
        }
    }
}

ノート: 上記のサンプルコードでは、ログイン処理の可能なすべての手順を説明するすべての関数を使用する必要があります。ただし、各関数内で呼び出されるアクションを選択することができます。この例では、アクションコールの代わりにデバッグテキストが表示されます。 また、OnLogin() メソッドが Unity IAP 初期化関数を開始します。

2. Xiaomi 初期化

次に、ログインリスナーと AppStoreSettings アセットに保存されているアプリケーション認証情報を使用して、Xiaomi API を初期化します。

    void Awake()
        {
            //  SamleLoginListener クラスでログインリスナーを作成します
            SampleLoginListener loginListener = new SampleLoginListener();

            //  (SampleLoginListener クラスの) initializeIAP アクションを (次のステップで定義する) 関数に紐づけします
            loginListener.initializeIAP = ConfigureIAP;

            // AppStoreSettings Asset にアクセスして、保存された認証情報で AppInfo を生成します。AppStoreSettings クラスは AppStoreSupport ライブラリの一部です。
            AppStoreSettings appStoreSettings = Resources.Load<AppStoreSettings>("AppStoreSettings");

            // 認証情報とログインリスナーを使用して Xiaomi を初期化します
            UnityEngine.Store.StoreService.Initialize(appStoreSettings.getAppInfo(), loginListener);
        }

プロジェクトの AppStoreSettings アセットを起動する際に、getAppInfo() 関数は Mi Game Center store 初期化処理の認証情報データを返します。

3. Unity IAP 設定ビルダーと初期化

最後に、設定ビルダーを使い、IAP Catalog のプロダクトデータを Xiaomi 用に変換します。それから、Unity IAP の初期化 を行います。

    // 設定ビルダーはストアリスナーを必要とします
        // IStoreListener 抽象クラスを実装してストアリスナーを作成します
        class StoreListener : IStoreListener
        {
            private IStoreController controller;
            private IExtensionProvider extensions;

            // 購入のための Unity IAP の準備が整ったら、呼び出されます
            public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
            {
                this.controller = controller;
                this.extensions = extensions;
            }

            // インターネットが使用できない場合は、これを呼び出すことはできません
            // インターネットが使用可能になるまで Unity IAP は初期化を試みます
            public void OnInitializeFailed(InitializationFailureReason error)
            {
            }

            // 購入が終了したとき、または、Unity IAP に回復不可能な初期化エラーが発生したときに呼び出されます
            //  OnInitialized() の後で、いつでも呼び出されることがあります
            public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs e)
            {
                return PurchaseProcessingResult.Complete;
            }

            // 購入が失敗すると呼び出されます
            public void OnPurchaseFailed(Product i, PurchaseFailureReason p)
            {
            }
        }

        // プロダクトを定義するために設定ビルダーを実行します
        public void ConfigureIAP()
        {
            // IAP Catalog からプロダクトを読み込みます
            var module = StandardPurchasingModule.Instance();
            var builder = ConfigurationBuilder.Instance(module);
            var catalog = ProductCatalog.LoadDefaultCatalog();

            // Catalog 内のプロダクトをループで走査し、メタデータをビルダーに抽出します
            foreach (var product in catalog.allProducts)
            {
                if (product.allStoreIDs.Count > 0)
                {
                    var ids = new IDs();
                    foreach (var storeID in product.allStoreIDs)
                    {
                        ids.Add(storeID.id, storeID.store);
                    }
                    builder.AddProduct(product.id, product.type, ids);
                }
                else
                {
                    builder.AddProduct(product.id, product.type);
                }
            }

            // StoreListener クラスに基づいて、ストアリスナーを作成します
            StoreListener storeListener = new StoreListener();

            // Unity IAP を初期化します
            UnityPurchasing.Initialize(storeListener, builder);
        }

設定ビルダーは Product IDs と Product Types を参照して、Price、Type、Title、Description などのメタデータを自動的に収集します。ビルダーは、 IAP Catalog の IAPProductCatalog.json ファイルと Unity IAP 初期化中にインスタンス化された builder オブジェクトを使用します。

IAP の実装

IAP の実装方法の詳細は、以下のドキュメントを参照してください。

インテグレーションのテスト

AppStoreSettings Asset interface でテストモードに切り替えて、Xiaomi 以外の Android デバイスでゲームの購入フローをテストします。Unity Channel には、テストモードを切り替えるための API も用意されています。

AppInfo.debug = true;

Unity Channel ラッパーは AppInfo クラスを含み、データを Xiaomi SDK に渡します。 アプリケーションを Xiaomi に提出するには、テストモードを有効にする必要があります。テストモードでは、テスト目的でクレジットカードの要件を回避します。テストモードを有効にしたら、プロジェクトをビルドし、成果物の APK ファイルを Android デバイスで起動します。

実際の購入をテストするには、テストモードを false に設定し、Xiaomi デバイスでテストします。実際の購入には Xiaomi Mi Pay アカウント と、中国元などの適切な通貨が必要です。

Xiaomi に送信

このセクションでは Unity IAP SDK を使用して Unity エディターによってゲームを送信する手順を説明します。

  1. IAP ターゲットを設定
  2. IAP インテグレーションをテスト
  3. アプリケーションを登録
  4. Xiaomi ポータルにゲームをプッシュ

IAP ターゲットを設定

Unity エディターで、Window > Unity IAP > Android > Target Xiaomi Mi Game Pay の順に選択して、Mi Game Pay をターゲットにするように Unity IAP を設定します。これにより、Xiaomi はゲームの APK の次のビルドに使用できます。また、ランタイムに Xiaomi Mi Pay のネイティブの請求 API を使用するように Unity IAP に通知する設定ファイルを作成します。

次のアプリケーションビルド作成中に Xiaomi Mi Game Pay をターゲットにするように Unity IAP を設定
次のアプリケーションビルド作成中に Xiaomi Mi Game Pay をターゲットにするように Unity IAP を設定

Xiaomi Developer Portal にプロジェクトをプッシュ

Xiaomi にプッシュする前に、ゲームをビルドするテストを行います。ローカルで、または Unity Cloud Build で Android ビルドターゲットを使ってプロジェクトを設定してテストしてください (Cloud Build を参照)。

エディターの Unity Services ウィンドウで Cloud Build を有効にします (Cloud Build 実装 に関するドキュメントを参照)。

ビルドのアップロード

以下の方法のうちの 1 つを使って、ビルドを Cloud Build の History にアップロードします。

エディターから

  1. Cloud Build Services ウィンドウで、Manage Target Builds > Add New Target の順に選択します。
  2. TARGET SETUPPLATFORMAndroid に設定し、TARGET LABEL を入力してから Next: Save をクリックします。
  3. Start Cloud Build から 2 で作成したターゲットを選択します。
エディターからビルドを Cloud Build にアップロード
エディターからビルドを Cloud Build にアップロード

Unity Cloud Build Developer Dashboard から

  1. プロジェクトの Cloud Build の History に移動します。
  2. Upload をクリックし、 エディターでビルドした APK ファイルを選択します。
Developer Dashboard からビルドを Cloud Build にアップロード
Developer Dashboard からビルドを Cloud Build にアップロード

Xiaomi にビルドをプッシュ

以下の方法のうちの 1 つを使って、設定したビルドを Xiaomi Developer Portal にプッシュします。

エディターから

Cloud Build Services ウィンドウでビルド履歴のタイムラインから必要なビルドを探し、Push to Xiaomi を選択します。 プッシュすることを確認します。

設定したビルドをエディターを通して Xiaomi の Developer Portal にプッシュ
設定したビルドをエディターを通して Xiaomi の Developer Portal にプッシュ

Unity Cloud Build Developer Dashboard から

  1. プロジェクトの Cloud Build の History に移動します。
  2. Download .APK File ドロップダウンから Push to Xiaomi を選択します。
設定したビルドを Unity Developer Dashboard を通して Xiaomi の Developer Portal にプッシュ
設定したビルドを Unity Developer Dashboard を通して Xiaomi の Developer Portal にプッシュ

ノート: プロジェクトが属する Organization (組織) の所有者のみが Xiaomi にデプロイすることができます。

Xiaomi Developer Portal でゲームを設定

UDN 認証情報は、Xiaomi Unity Developer Portal にアップロードされたプロジェクトへのアクセスを許可します。初めてログインするときは、Projects リストに進む前に、Xiaomi の TERMS AND CONDITIONS (利用規約) に同意する必要があります。それから、提出するプロジェクトを検索します。始めにステータス Version1.0: Draft が表示されます(下図の赤枠表示部分)。プロジェクトの処理全体にわたるステータス変更に関する送信ログを表示するには、クリップボードアイコンを選択します。ステータスのリンクを選択して、プロジェクトのメタデータの詳細を表示します。

Xiaomi Unity Developer Portal の Project リスト
Xiaomi Unity Developer Portal の Project リスト

以下の図のように表示されます。

Xiaomi Unity Developer Portal に表示されるプロジェクトのストアメタデータ
Xiaomi Unity Developer Portal に表示されるプロジェクトのストアメタデータ

1. Basic Information

Mi Game Center に表示されるテキストの情報です。

  • Game Name はアプリケーションの英語タイトル。Xiaomi では、手動でこの英語タイトルを、ストアで顧客が直接目にする中国語に翻訳します。
  • Name of Developer は直接顧客が目にするパブリッシャー名。
  • Game Introduction はアプリケーションの英語での説明。Xiaomi では、英語のタイトルが手動でストアで顧客が直接目にする中国語に翻訳されます。
  • Email は Xiaomi が開発者にフィードバックを送信するための開発者のコンタクト情報。

2. Target Device

このセクションでは、Mi Game Center に表示されるモバイルとタブレットデバイスが表示されます。以下のガイドラインに注意してください。

  • チェックを入れた各デバイスに最低 3 つの画像をアップロードしてください。
  • 画像のサイズは 1080 x 720 pix (横向き)、または 720 x 1080 pix (縦向き)。

レビューのため送信

準備が整ったら、Submit を選択してゲームをレビューを受けるために Xiaomi に提出します。プロジェクトのステータスの表示が In review に変わります。プロジェクトのレビュー中、その詳細を編集することはできません。レビューをキャンセルしてプロジェクトの詳細を変更するには、プロジェクトの詳細を開き、Cancel を選択します。

地域的な規制の遵守

アプリを公開するには ISBN パブリケーションライセンスが必要です。Xiaomi は、国家新聞出版広電総局(SAPPRFT) による ISBN の承認プロセスを包括的にサポートします。

Xiaomi は、SAPPRFT がすべてのゲームを承認することを保証するわけではありません (SAPPRFT 提出ガイドライン を参照)。 ストアや国の規制遵守ルールを満たすためには、ゲームの変更が必要になる可能性があります。

円滑な承認手続きのためのコンテンツガイドライン

中国政府の承認を受けるために、提出する際には以下のヒントを考慮してください。

  • 中国の国家のランドマークや象徴 (例えば、中国の国旗、または万里の長城) の尊厳が損なわれると考えられるような描写を避けます。
  • 中国の国家政治、歴史、紛争、宗教を主題として描写することを避けます。
  • ゲームの世界で地図や地域を作成するときは、中国の既存の地政学や国境に矛盾する地域を定義することを避けます。
  • 賭博、および、いかなる種類の賭博遊具の描写を避けます。
  • 中国の成人向けコンテンツには厳しい制限があります。 ヌード、現実的な暴力、薬物使用の描写を避けます。
  • 未成年者が未成年者の飲酒や喫煙などの違法行為を行う描写を避けます。

IAP プロダクトカタログをインポート

提出を完了する前に、以下の手順に従って Xiaomi がもっとも最近の IAP プロダクトカタログをもつことを確認します。

  1. プロジェクトを選択してから、左のナビゲーションペインで IAP Configuration を選択します。
  2. Import をクリックします。
  3. プロジェクトからエクスポートした MiGameProductCatalog.prop ファイルをインポートします。
  4. カタログのコンテンツを確認し、Confirm をクリックします。
  5. インポートしたプロダクトのリストが表示されます。Submit をクリックして提出するカタログを保存します。
IAP Product カタログを Xiaomi Developer Portal にインポート
IAP Product カタログを Xiaomi Developer Portal にインポート

Mi Game Center にパブリッシュ

認証情報

Xiaomi が承認を示すと、プロジェクトステータスは Approved に変更され、以下の認証情報を受け取ります。

  • App ID
  • App Key
  • App Secret
Xiaomi Developer Portal の承認されたプロジェクト
Xiaomi Developer Portal の承認されたプロジェクト

AppStoreSettings アセット または 初期化のスクリプト にこれらの認証情報の値を入力し、Test Modefalse に設定します。ゲームの新しいビルドを作成し、以前のようにこのビルドを Xiaomi にプッシュします。

Xiaomi は電子メールで開発者契約を提供します。契約書に署名すると、Xiaomi は政府の承認プロセスをサポートします。Xiaomi は、ゲームが ISBN ライセンスと、Mi Game Center でパブリッシュする許可を取得すると、それを開発者に通知します。

Xiaomi のコンテンツレビュープロセスは、変更が必要でない限り、通常、1–2 営業日かかります。 しかし、政府の承認プロセスとライセンスの発行には 4–8 か月かかることがあります。審査プロセスの詳細については、Unity-Xiaomi パートナーページよくある質問 セクションを参照してください。

CloudMoolah MOO Store
Unity Channel SDK と API 拡張