Ответ 1
Это условие ошибки не имеет ничего общего с конфигурацией. Это прерывистая ошибка в магазине.
Я отлаживаю восстановление транзакций, и в моей конфигурации отладки все работает нормально:
IE Я вызываю:
[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];
через некоторое время queueCalls:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
и через некоторое время он вызывает:
- (void)paymentQueueRestoreCompletedTransactionsFinished:(SKPaymentQueue *)queue {
и все счастливы.
НО в моей конфигурации выпуска я никогда не вижу вызова обновленных транзакций, и поэтому я никогда не восстанавливаю покупки.
возможно связанный, после попытки восстановления, и он не работает. Я перезапускаю приложение, и я обнаружил, что не получаю ответа, когда я спрашиваю у магазина список продуктов.
Это условие ошибки не имеет ничего общего с конфигурацией. Это прерывистая ошибка в магазине.
Карл, как вы сказали, кажется, это прерывистая ошибка. Тем не менее, я также выяснил, что этого не происходит (или, по крайней мере, я еще не видел его), если я тестирую его с помощью US Store. Я использую тест-тест в Великобритании, и сегодня он терпел неудачу каждый раз. Создал пользовательский тестовый пользователь США, и после автоматического переключения в американский магазин он работает отлично. Это не исправление, но может быть полезно;)
Вы добавляете свой платежный объект в очередь оплаты таким образом?
SKPayment * платеж = [SKPayment paymentWithProductIdentifier: "Идентификатор вашего продукта" ]; [[SKPaymentQueue defaultQueue] addPayment: платеж];
Если вы используете этот способ, то UpdateTransactions вызывается сразу после добавления объекта платежа в очередь оплаты. Вам не нужно его явно указывать. Он помещен в комплекте магазина.