Вот что я не знаю. Произойдет ли это в производственной среде (опубликованное приложение и фактический логин 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?

Ответы на вопрос(14)

Ваш ответ на вопрос