このガイドでは、Unity のゲームでアプリ内課金ストアを利用するのに必要な、デジタルレコードと関連を構築する手順を説明します。Unity IAP の購入 API がターゲットです。
In-app Purchase (IAP) はお金とデジタル製品を取引する処理です。プラットフォームのストアでは、デジタル製品であるプロダクトの購入が可能です。これらのプロダクトには通常、文字列データ型の ID があります。もっとも一般的なのは、Subscription、Consumable (繰り返し購入することができるタイプ)、Non-consumable (一度のみ購入できるタイプ) です。
Unity IAP を実装するゲームを作成します。Unity IAP の初期化を参照してください。
後で、iTunes Connect で使用するために、手元にゲームのプロダクト ID を控えておきます。
Apple Developer Center で、該当する ID セクションを探します。
新しい App ID を加え、Apple の基本アプリケーション情報を作成します。
(注記)Explicit App ID を使用してください。Wildcard App ID (com.example.*) は、IAP を利用するアプリケーションには使用できません。
(注記)App ID は Developer Center で作成したあとに iTunes Connect で使用できます。
iTunes Connect を開いてアプリを作成し、ゲームとストアとの関連付けをします。
新しく作成した App ID をアプリのバンドル ID に使用します。
Features を選択し、プラス (“+”) ボタンを押して新しい IAP を加えます。
プロダクトタイプを選択します。
プロダクト ID を 指定し、リクエストに応じて他のフィールドに記入します。
ノート: このプロダクト ID は、ゲームのソースコードで使用され、AddProduct() や AddProducts() を通じて Unity IAP ConfigurationBuilder インスタンスに加えられる ID と同じです。
ノート: 複数の Apple デバイスのグループをターゲットにするとき (例えば、iOS と Mac の両方を出荷するときなど)、Apple はそれぞれのデバイスグループを区別できるよう固有のプロダクト ID を必須としています。Unity IAP の Purchasing.IDs クラスを使用して、1 対 多にマッピングするプロダクト ID を特定のストアの ID に定義し、IAP を初期化するときにそのマッピングを渡します。
結果
テストデバイスの iTunes アカウントで使用するために、iTunes Connect を使用して Sandbox テスター__を作成します。これを行うには、iTunes Connect > Users and Roles__ に移動してプラス (“+”) ボタンを選択します。必ず Apple の Sandbox テスターに関するドキュメントを参照し、追加の重要な使用上の注意を確認してください。また、テスターの作成には実際の E メールアドレスを使用する必要があります。
ノート: 詳細については、iOS および Mac の App Store ガイドを参照してください。
ヒント: E メールアドレスの管理をシンプルにするには、サブアドレス (emailaccount+subaddress@example.com) に対応している E メールサービス (Gmail、iCloud、Outlook.com など) を使用してください。これにより、1 つのメールアカウントで複数のサブアドレスのメールを受信できます。
ウィザードに従ってユーザーを作成します。
Unity を使用して、ゲームの Xcode プロジェクトをビルドします。
ノート: Unity のバンドルID (Edit > Project Settings を選択し、Other Settings カテゴリを選択して Bundle Identifier セクションに移動) が iTunes Connect で使用している ID に一致することを確認してください。
ゲームの Xcode プロジェクトで、Team (Project Navigator > your game Target > General > Identity > Team) が Apple Developer アカウントに設定されていることを確認してください。
ターゲットになる iOS デバイスを使って、存在する Apple ID アカウントすべてからサインアウトします。後でアプリでプロンプトが表示されたら、Sandbox テスターとしてのみサインインします。その後の購入はすべて、正式な App Store ではなく Apple Sandbox 経由で送られます。
iOS デバイスでゲームをビルドして実行します。すべてが正しく設定されていれば、UnityPurchasing.Initialize() は成功します。
デバイス上のゲームで何かを購入して、IAP をテストします。変更された購入ダイアログが表示され、この購入が実際に andbox 環境で実行されたことが示されます。購入の際に、パスワードの入力を求められたら、Sandbox テスターユーザーのパスワードを使用してください。
警告: 表示が出ない場合は、プロダクトに対して実際に課金されます。
デスクトップの Mac ビルドをビルドする場合は、UnityのMac Player 設定で Mac App Store Validation を選択します。
アプリケーションをビルドしたら、バンドル ID とバージョン文字列で info.plist ファイルを更新します。.app ファイルを右クリックして__パッケージの内容を表示__を選択し、info.plist ファイルの CFBundleIdentifier 文字列をアプリのバンドル ID に変更します。
その後、アプリケーションに署名し、アプリケーションをパッケージ化してインストールします。“your.app” と “your.pkg” に適宜入力し、以下のコマンドを OSX ターミナルから実行します。
ヒント: バンドルに署名するには、Contents.meta ファイルが存在する場合、まずこれを削除する必要があります。your.app/Contents/Plugins/unitypurchasing.bundle/Contents.meta
codesign -f --deep -s "3rd Party Mac Developer Application: " your.app/Contents/Plugins/unitypurchasing.bundle
codesign -f --deep -s "3rd Party Mac Developer Application: " your.app
productbuild --component your.app /Applications --sign "3rd Party Mac Developer Installer: " your.pkg
正しくパッケージをインストールするには、新しく作成したパッケージを実行してインストールする前に、パッケージ化していない .app ファイルを削除しておく必要があります。
Applications フォルダーからアプリケーションを起動します。初回起動時には iTunes アカウント情報の入力を求められ、入力すると Sandbox 環境でテスト購入できるようになります。
Apple App Store のテストと署名の詳細については、iOS と Mac の拡張機能と macOS アプリケーションのビルドを参照してください。