2012-03-20 8 views
0

MKStoreKitを使用してアプリケーションにIAPを実装しています。製品を購入するときには、すべてが予期したとおりに行われ、エラーメッセージはまったくありません。購入後、購入を確認し、次のコードを使用して購入された製品...製品は、私は(下記のコードを経由して)通知を受け取る購入された後MKStoreKitは購入した製品を保管していません

[[MKStoreManager sharedManager] buyFeature:@"pro_upgrade" 
           onComplete:^(NSString* purchasedFeature) 
{ 
    NSLog(@"Purchased: %@", purchasedFeature); 
    // provide your product to the user here. 
    // if it's a subscription, allow user to use now. 
    // remembering this purchase is taken care of by MKStoreKit. 
} 
           onCancelled:^ 
{ 
    // User cancels the transaction, you can log this using any analytics software like Flurry. 
}]; 

..

[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector (subscriptionPurchased:) 
              name: kSubscriptionsPurchasedNotification 
              object:nil]; 

I

if([MKStoreManager isFeaturePurchased:@"pro_upgrade"]) { 
    NSLog(@"This feature is purchased."); 
} else { 
    NSLog(@"This feature is not purchased"); 
} 

次のコードを実行して、製品が購入されたかどうかを判断します。製品IDは常にNOを返します。これは、製品を購入したときと同じインスタンスでアプリを実行し、アプリを閉じて開いたときに発生します。開発または配布証明書を使用してアプリケーションを実行すると、まったく違いはありません。さらに私は、MKStoreKitが探していると思われるBOOLを購入した製品をどこに格納しているのかを見つけることができません(コード内でかなり深いので、そうでないと言っているわけではありません。 。私のアプリはNSUserDefaultsを使って他の情報を保存しているので、問題はありません。

あなたが提供できるヘルプは、お時間をいただきありがとうございます。

+0

また、サブスクリプションベースのIAPにも注目する価値があります。また、コンソールに次のエラーメッセージが表示されます。 レビューリクエストを今すぐチェックすることはできません:(null) – user1168056

+0

レビューリクエストを確認できません。 – Mugunth

答えて

0

MKStoreKitはNSUserDefaultsに格納されません。 代わりにキーチェーンを使用します。 メソッドにブレークポイントを設定するstoreData:forKey:(コードを見ずに というメソッド名を直接記述し、同様の名前のメソッドを検索してください)、デバッグしてみてください。 これは私があなたの購入を保存する場所です。

削除しても購入は記憶されており、 アプリを再インストールすることを忘れないでください。

+1

あなたの文書では、NSUserDefaultsを使用していると言われています。おそらく、これを更新する必要があります。 https://github.com/MugunthKumar/MKStoreKit#readme – Brynjar

関連する問題