2011-05-13 7 views
5

こんにちは 私はinapp購入iphoneアプリケーションを作成しています。私のアプリケーションはモデルで構築されています。それは6項目を持っているテーブルビューを持っています。無料アプリでは3つのアイテムを利用でき、3つのアイテムをロックしたい1つの取引を$ 0.99で行うだけで、3つのアイテムをすべてロック解除することができます。In App Purchase-Unlock機能

フラグを含むアプリケーションにplistファイルを作成したいとします。 flag = 0の場合、いくつかの機能をロックし、flag = 1の場合はすべてをロック解除します。私のplistには0または1の1つの "フラグ"しか含まれません。

plistファイルの作成方法はわかりません。顧客がアクセスできないようにplistファイルをどこに置くべきですか?私はそれをリソースフォルダに入れておくべきですか?

SKTransactionStatePurchasedの後、.plistファイルのフラグを変更したいとします。 flag.plistファイルのフラグ値を0から1に変更するコードを教えてください。

ありがとうございました。

答えて

2

私はあなたが理由のカップルのために、あなたの問題を解決するための別のアプローチを探すべきだと考え:jailbreakersが含まれていることや、特定のがあります。

  • プレースメントリストは、内部のiOSファイルシステムへのアクセス権を持っている誰でも編集できます非脱獄者がそれにもアクセスできるようにするツール。
  • plistをコードで編集するには、アクセス許可が必要です。あなたのアプリはそのドキュメントフォルダ内の編集権限しか持っていません。つまり、誰かが簡単にあなたのアプリのドキュメントフォルダにアクセスして、その値をかなり簡単に編集できる脱獄アプリを作ることができたという。

あなたの質問に直接答えるのではなく、アプリが使用するドキュメントにその種のものを保存することは本当に悪い考えです。私は非常にあなたがこれを行う別の方法を探すことをお勧めします(自分のサーバーを使用するような)。

+0

私は個人ではなく、サーバーやウェブサイトを持っていません。私はまた彼らのために支払うことを望んでいません。私は、アプリの購入アプリケーションで作成している他のいくつかの個人がいることを知っています。 plistメソッドを使用していない場合、どのメソッドが使用されていますか?それを行う一般的なアプローチは何ですか? – chits12345

+0

私は自分でアプリ内購入をしましたが、私はいくつかのことを知っています。人々が自分のサーバーを使用し、時にはええ、彼らはアプリ自体で "ロック解除"を行います。私は、最後の方法については確信していません。なぜなら、設計できるものはすべてリバースエンジニアリングできるからです。私があなたの場合はNSUserDefaultsを使用しますが、常に何らかの記述を使用しています。 –

+0

(ボイド)provideContent:(NSStringの*)はPRODUCTID {IF([商品コードisEqualToString:kInAppPurchaseProUpgradeProductId]) {[[NSUserDefaults standardUserDefaults] setBool:YES forKey: "isProUpgradePurchased" @]。 [[NSUserDefaults standardUserDefaults] synchronize]]; } }このコードを使用すると、NSUserDefaultsのフラグ "IsProUpgradePurchased"を設定しています。これは、購入を行っているユーザーまたは脱獄者によってアクセスおよび変更できません。 NSUserDefaultsを実装するにはサーバーが必要ですか? – chits12345

2

実際にあなたの質問に答えるために:SKTransactionStatePurchased後

を、ちょうど

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
[defaults setInteger:1 forKey:@"yourKey"]; 
[defaults synchronize]; 

yourKeyはあなた自身の選択の何もすることができます呼び出します。恐らく、 は、無意味で無作為な言葉を使用して、ハッカーがアプリの購入に関連することを知りません。