2012-03-20 4 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]; 

После покупки я выполнить следующий код (как описано), чтобы определить, если продукт был куплен ..

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

Он постоянно возвращает NO для продукта ID. Это происходит при запуске приложения в том же экземпляре, что и при покупке продукта, а также при закрытии приложения и его открытии. Запуск приложения с использованием сертификатов разработки или распространения не имеет никакого значения. Более того, я не могу найти, где именно MKStoreKit хранит приобретенный продукт BOOL, который, по-видимому, ищет (он довольно глубоко в коде, поэтому я не говорю, что он делает или нет, я просто не могу его найти) , Мое приложение хранит другую информацию с помощью NSUserDefaults, так что это не проблема.

Любая помощь, которую вы можете предложить, будет очень благодарна, спасибо за ваше время.

+0

Также стоит отметить, что это IAP на основе подписки. Я также получаю следующее сообщение об ошибке в консоли. Запрос на проверку не может быть проверен сейчас: (null) – user1168056

+0

Запрос на проверку не может быть проверен сейчас. – Mugunth

ответ

0

MKStoreKit не хранится в NSUserDefaults. Вместо этого я использую брелок. Поместите точку останова в метод storeData: forKey: (записывая это имя метода прямо со своей головы , не глядя на код, ищите аналогично названные методы) и попробуйте отладить его. Это место, где я сохраняю ваши покупки.

Помните, что покупки запоминаются даже после удаления и переустановка приложения.

+1

В вашей документации, однако, сказано, что вы используете NSUserDefaults. Возможно, вы должны это обновить. https://github.com/MugunthKumar/MKStoreKit#readme – Brynjar

Смежные вопросы