Извините за этот миллионный вопрос об автообновляемых подписках, но я не понимаю.
Я сделал все как описано в Apple App In-App Guidelines, но это не решило проблему.
Моя проблема в том, что я создал автообновляемые подписки, но они не будут автоматически обновляться.
Я создал класс обозревателя платежных транзакций, который реализует интерфейс SKPaymentTransactionObserver. Этот класс будет установлен как paymentObserver при запуске приложения в методе viewDidLoad:
.
PaymentTransactionObserver * наблюдатель = [[PaymentTransactionObserver alloc] init];
[[SKPaymentQueue defaultQueue] addTransactionObserver: наблюдатель];
В обозревателе paymenttransaction у меня есть метод paymentQueue: updateTransactions: (аналогично описанию в документации Apple)
- (void) paymentQueue: (SKPaymentQueue *) очередь обновлена транзакций: (NSArray *) транзакций {
для (транзакции SKPaymentTransaction * в транзакциях) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased:
[self completeTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
[self failedTransaction:transaction];
break;
case SKPaymentTransactionStateRestored:
[self restoreTransaction:transaction];
break;
default:
break;
}
}
Когда я покупаю автообновляемый продукт, он будет успешно приобретен.
Но это никогда не будет автоматически возобновлено. Я думал о том, что наблюдатель транзакции, так или иначе, будет освобожден, но этого не произойдет (в противном случае я буду уведомлен отладчиком). Хотя я также удалил наблюдателя, но он никогда не будет удален.
Я использовал отладчик, чтобы гарантировать, что метод updateTranscations:
будет вызван, но ничего. Когда я покупаю тестовый продукт (в режиме «песочницы») со временем автоматического обновления, равным одной неделе, метод должен вызываться через 3 минуты, но это не так.
Что я делаю не так?
Кто-нибудь может помочь?
Br Nic