6

仕組み- アプリは、クロス プラットフォームで動作するサービスへのサブスクリプションです。iPhone では、最初の購入で 30 日間すべての機能を利用できます。30 日を過ぎると、アプリ内購入でサブスクリプションを購入するまで、特定のことができなくなります。

必要なもの- ユーザー情報をデータベースに追加できるように、最初の実行かどうかを知る必要があります。または、クロスプラットフォームであるため、サブスクリプションの料金を既に支払っている可能性があるため、ユーザーの既存のサブスクリプションに 30 日を追加する必要があります。

私が今していること- 現在、identifierForVendor をリモート データベースに保存しており、NSUserDefaults には、1. 最初の実行である場合と 2. ユーザーが自分自身を追加できるようにする最初の実行である場合を確認するブール値がチェックされています。データベースを 30 日間完全に使用するか、既存のサブスクリプションに 30 日間追加します。

問題- 問題は、ユーザーがアプリを削除してから再インストールすると、NSUserDefaults も削除され、identifierForVendor が変更され、ユーザーがアプリを削除して再インストールするだけで、サブスクリプションにさらに 30 日間無料で追加できることです。アプリ。

理想的な解決策もともとアプリのサブスクリプションを行いたかったのですが、アプリを最初に購入したときに領収書を確認し、ユーザーをリモート データベースに挿入する方法がわかりませんでした。また、アプリ内購入ではないサブスクリプションをセットアップする方法もよくわかりません。また、アプリを無料にして、アプリ内購入を使用してサービスを購入することも考えましたが、そもそもリモート サーバーに接続してデータを構築することができなければアプリは役に立ちません。

結論 次のいずれかを実行したい

  1. 最初の購入時にサブスクリプションを作成します (ユーザー情報をリモート データベースに入力できるように、購入が有効かどうかを検出できる必要があります)
  2. アプリを無料にしてから、In App Purchase を使用してサブスクリプションを追加します (サブスクライブするまで何もしない無料のアプリを使用することは許容されますか?)
  3. 現在のままにしておきます (ただし、identifierForVendor に対するより恒久的な解決策を見つけてください。identifierForAdvertising はオフにすることができるため、どちらも機能しません)
4

1 に答える 1

2

これはあなたをとても助けます。基本的には、NSUserDefaults に基づいてパターン化された Keychain のラッパーです。とても助かりました。キーチェーンに物を保存すると、アプリの再インストール後も保持されます。

https://github.com/carlbrown/PDKeychainBindingsController

このプロジェクトは、Mac OSX および iOS キーチェーンを NSUserDefaults と同じくらい簡単に使用できるようにすることを目的としています。

これは、Mac OSX および iOS キーチェーンの KVO 準拠の Cocoa ラッパーであり、このラッパーのモデルは NSUserDefaults であるため、通常は次のように呼び出したい一般的なケースで使用されます。

[NSUserDefaultsController sharedUserDefaultsController] 呼び出すことができるはずです

[PDKeychainBindingsController sharedKeychainBindingsController] また、一般的なケースでは、通常は次のように呼び出します。

[NSUserDefaults standardUserDefaults] 呼び出すことができるはずです

[PDKeychainBindings sharedKeychainBindings]

于 2012-12-21T21:53:42.973 に答える