Вот что я не знаю. Произойдет ли это в производственной среде (опубликованное приложение и фактический логин Apple)? Надеюсь нет.
риложение использует встроенные покупки, и большинство моих пользователей могут совершать покупки без проблем. Для этих людей мое приложение загружает контент после успешной покупки, и они счастливы.
Тем не менее, для растущего числа моих пользователей, после того, как они завершили успешную покупку в приложении, их запрашивают пароль в App Store каждый раз, когда приложение запускается после этого. Я считаю, что это происходит по вызову:
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
который я призываю при запуске в соответствии с шагом 6 в руководстве по покупке Apple в приложении:
архивное руководство:https://web.archive.org/web/20130515222703/https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/AddingaStoretoYourApplication/AddingaStoretoYourApplication.htmlактуальный гид:https://developer.apple.com/library/content/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/DeliverProduct.html#//apple_ref/doc/uid/TP40008267-CH5-SW4Я предполагаю, что по какой-то причине серверы покупок в приложениях Apple не регистрируют, что транзакция успешно завершилась - хотя я звоню
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
когда транзакция завершена и мой контент был успешно загружен.
2 вопроса:
Кто-нибудь еще видит это?
У кого-нибудь есть предложенное исправление?
BOUNTY EDIT:
Это сделка с другим Apple-ID. Вот почему это не может быть завершено, если вы не введете правильные учетные данные в диалоговом окне. Вопрос должен быть либо:
Как я могу предотвратить такие мертвые транзакции (транзакция не была завершена, у пользователя нет сети, в то же время изменяется App-ID)?Как вы можете обрезатьSkPaymentQueue
?