5

アプリの一部の機能のロックを解除する 1 回限りの購入がある IAP を実装しました。購入は各ユーザーによって 1 回だけ行われるため、このユーザーが購入したかどうかを Apple の IAP サービスに問い合わせることができます。その場合は、機能のロックを解除します。そうでない場合は、IAP プロンプトを表示します。ネットワーク接続なしでアプリを使用するための不完全な解決策として、ユーザーのデフォルトにいくつかの「userDidMakePurchase」フラグも保持した可能性があります。

ここで、ユーザーが何度も作成できる IAP を実装したいと思います。アプリ内通貨を使用するための 10 個のトークンがユーザーに与えられるたびに。特定のユーザーがアプリを起動したときに持っているトークンの数を確認するにはどうすればよいですか?

これまでのところ、ユーザーの既定値にトークン カウントを保持することを検討してきました。これには、アプリを削除して再インストールするとユーザーのトークン残高が消去されるなど、いくつかの大きな欠点があります。また、トークンは他のデバイスに引き継がれません。

もちろん、トークン カウントを自分のサーバーに保持することも、AWS を使用することもできます。ただし、可能であればこれを避けたいと思います。私は IAP の基本しか知らないので、おそらく Apple はすべての購入を追跡しており、そこからそれを把握することができます。

4

2 に答える 2

8

「一度購入すればずっと使える」から「何度も購入して長持ちするまで使う」に切り替えると、Apple の用語では購入が消耗品になります。Apple は消費可能な購入の状態を保存しないため、リソースの消費を追跡するタスクは完全にアプリケーションに任されています。

一般に、残りのカウントを保存するために潜在的に使用できる場所が 4 つあります。

------------------------------------------------------------------
|      Storage     | Offline? | Reinstall? | Encrypted? | Large? |
------------------------------------------------------------------
| Documents Folder |    YES   |     NO     |     NO     |   YES  |
| iCloud           |     NO   |     YES    |     NO     |   YES  |
| User Defaults    |    YES   |     NO     |     NO     |   NO   |
| Keychain         |    YES   |     YES    |     YES    |   NO   |
------------------------------------------------------------------

少量のデータを保存する必要があるため、理想的な候補はKeychainです。これはオフラインで動作し、再インストールしても存続し、追加のボーナスとして暗号化もされています.

NSキーチェーン API の組み込みラッパーはありませんがCF、Apple は親切にもそのための優れたラッパーを公開しています (ページの一番下までスクロールしてコードを確認してください)。セキュリティ フレームワークをソリューションに追加し、ラッパー コードをコピーしてプロジェクトに貼り付けます (ファイルは 2 つだけです)。これで、キーチェーンをまるでNSDictionary.

于 2012-11-13T18:57:28.143 に答える
1

iCloud Key-Valueストアは、アプリの削除/再インストール後も存続すると確信しています。それが進むべき道かもしれません。

そうでなければ、トークン数を保存するための独自のサーバーと、ユーザーを認証するための何らかの方法が必要になります(デバイスIDは適切ではありません。デバイスを置き換えてバックアップから復元するとどうなりますか?)、それに伴うすべての面倒-登録、忘れましたパスワード画面など

于 2012-10-29T21:21:39.773 に答える