2013-01-11 10 views
5

iOS上にサーバードリブンゲームを作成して、複数のデバイスでゲームをプレイするためのゲームアカウントを作成できます。私のゲームには、非消耗品で、元の購入者が復元または再ダウンロードできるIn-App Purchases(IAP)があります。iOSエクスプロイト:複数のゲームアカウントへのアプリ内購入の復元

プレイヤーはIAPを複数のゲームアカウントに復元することはできません。これはアップルのルールを考えれば可能でしょうか?

ヒーローアカデミーを例にとると、可能です。

  • Player1はPlayer2のヒーローアカデミーゲームのアカウントにログインするには彼のゲームのアカウント上のIAPのすべてとiTunesアカウント
  • Player1
  • Player1 Player2のゲームアカウントへの再ダウンロード非消耗IAPへを購入します、IAP
  • Player2のすべてにPlayer2の権限を与えることが自分のデバイス上で自分のゲームアカウントにログインし、今IAP

結果のすべての権限を持っていることです:Player2は私のすべてを得ていますAP無料。

私は自分のiTunesアカウントでiTunesの復元の購入を1つのゲームアカウントに制限することができます。このソリューションを実装することは、非消耗品のIAPを復元するAppleのガイドラインに反するようです。

私は購入品を1つのアカウントにしか適用できないと考えているかもしれませんが、アップルのガイドラインを傷つけているようで、エンドユーザーのデザインが貧弱です。

+0

解決策は見つかりましたか? – GameDevGuru

+0

Appleに直接お問い合わせください。 – Timtech

+1

IOS 7.0+で利用可能な「applicationUsername」フィールドの使用はどうですか? – Lexicon

答えて

0

答えがNSUbiquitousKeyValueStoreのようなものを使用している可能性があります。これはユーザーにiCloudを使用させる必要がありますが、ほとんどのユーザーはそうすると思います。正しく理解すれば、これはiCloudベースのキーバリューストアなので、特定のAppleIDに関連付けられます。

あなた自身のヒーローアカデミーIDをそこに置くことで、実際には特定のAppleIDと同期されると思います。これは、あなたの攻撃のステップ2で、Player2が自分のAppleIDとパスワードの両方をPlayer1に与える必要があったことでしょう。多くの人々はこれをやりたいとは思わない。しかし、これを防ぐためには、NSUbiquitousKeyValueStoreに対するアクセス許可をチェックするようにゲームをプログラムする必要があると思います。言い換えれば、特別購入は、使用した時点でAppleIDに積極的に関連付けなければなりません。

あなたのゲームは実際のAppleIDを実際に見ることはありませんが、あなたが置いていたHero Academyの演奏されたIDによって、iCloudストアを別のものから区別することができます。

私が今開発しているアプリでも同様の理由で同様のことをやろうとしています。私は上記のアプローチがうまくいくことを確認するのに十分なテストをしていないが、これまでのところ有望だと思われる。

1

これに対する簡単な解決策は、ユーザが非消耗品を購入するためにゲームで過ごすソフト通貨の消耗性IAPを有することであろう。

I.e.マジックコイン50個を購入するマジックビーンアイテムを購入するためには、100個のマジックコインを5ドルで消費するIAPバンドルを購入します。

+1

確かに、ゾンビやドラゴンファームは、「ゲームバックス」ベースの経済で稼働しています。 – Jef

関連する問題