目的
実際にあった話を共有することで、同じように無駄な時間を使う人が減ることを期待しています。
tl; dr
通常であればアプリをアンロックするような、永続的に効果を発揮する機能について IAP 機能は非消費型アイテムとして設定されるべきであり、消費型として実装してはならない。
購入を行った Apple ID で紐付けられているユーザのすべてのデバイスで復元可能としなければならない。
概要
Super Mario Run は、ガイドラインのこの部分に違反しているため、それを真似て実装するとリジェクトされます。
Remember to assign the correct purchasability type or your app will be rejected.
Super Mario Run は IAP 商品に対して正しいプロダクトタイプを設定していません。
プロダクトタイプについてはこちらを参照します。
- https://support.apple.com/ja-jp/HT202023
- https://developer.apple.com/jp/documentation/StoreKitGuide.pdf
● 消耗型(Consumable)プロダクト。アプリケーションの実行に伴って消費されていく項目です。
Voice over IPアプリケーションで通信できる残り分数や、音声の転送など一度限りのサービスが例として挙げられます。
消費型のコンテンツの例としては以下の通りです。
- 新しい形式で書き出せるファイルのパッケージ
- ゲームの通貨
- ゲームのヒント
- ライフの追加
- 経験値の獲得
● 非消耗型(Non-consumable)プロダクト。ユーザのすべてのデバイス上で無制限に使用できる項目です。ユーザのすべてのデバイスで使用可能になります。例としては、書籍やゲームレベルなどのコンテンツ、およびアプリケーションの追加機能などがあります。
1 回のみ購入が必要で、それ以降はお使いの Apple ID に関連付けられているほかのデバイスに転送できます。非消費型のコンテンツが消滅した場合、無料で再ダウンロードできる可能性があります。
非消費型のコンテンツの例としては以下の通りです。
- プロエディションへのアップグレード
- 広告の削除
- ゲームの完全版のロック解除
- 無制限のヒント
- 追加のキャラクター
- 追加のアクセサリ
- ボーナスゲームレベル
- 都市ガイドマップ
Super Mario Run の場合、アイテムへの支払いによって得られるものはゲームの完全版へのロック解除であるため、本来なら非消費型に該当するべきで、これは本来であれば、その Apple ID で紐付けられているユーザのすべてのデバイスで復元可能とならなければいけません。
仮にサーバ側で別のシステムのアカウントを用意していたとしても、永続的に効果のあるものは、非消費型のプロダクトタイプを指定し、その Apple ID で紐付けられているユーザのすべてのデバイスで復元可能とならなければいけません
……と言う説明をレビューチームから電話で受け、自分のアプリはリジェクトされました。 Super Mario Run は、おそらく何か特別な事情があってそのようなプロダクトタイプの設定が許可されているだけで、通常はあの支払いデザインを真似てアプリを作ることはできません。
私と同じように、不用意に有名アプリの真似をする人が減ることを祈ります。