Когда я впервые разработал решение о покупке inapp для приложения для iOS, одной из неприятных вещей было то, что при вызове [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]
каждый раз пользователь запрашивал подтверждение своего Apple ID, открывая диалоговое окно со страшным паролем. Я тестировал это на iOS 8 и 9.
Пропустим несколько лет, и теперь я заметил, что в iOS 12.1 при вызове [[SKPaymentQueue defaultQueue] restoreCompletedTransactions]
это диалоговое окно не отображается, если пользователь не вышел из своей учетной записи Apple в разделе «Настройки».
Поэтому мне интересно, какая версия iOS перестала показывать это диалоговое окно при каждом вызове этой функции?
Хотелось бы, чтобы у меня была куча тестовых устройств iOS со всеми старыми версиями, но, к сожалению, у меня есть только устройства под управлением iOS 12, поэтому я не могу проверить это самостоятельно.
Причина, по которой я хочу знать, заключается в том, что возможность вызывать этот метод без вызова глупого диалогового окна означает, что я потенциально могу использовать его в качестве фонового метода проверки покупок, совершенных пользователем при запуске / возобновлении приложения.
Как только я узнаю, какая версия iOS перестала запрашивать подтверждение Apple ID при каждом вызове для восстановления, я могу добавить условную логику, чтобы сделать это только на той версии iOS или выше.
У меня есть приложение, в котором непотребляемые покупки inapp позволяют загружать пакеты содержимого на устройство.
Пользователи часто используют мое приложение на своих устройствах iOS, поэтому в настоящее время им приходится вручную синхронизировать приобретенный контент между устройствами с помощью кнопки «Восстановить покупки».
Однако, если я могу позвонить restoreCompletedTransactions
в фоновом режиме, чтобы получить список принадлежащих им непотребляемых покупок, я смогу сравнить это с пакетами контента, уже загруженными на их устройство, и, следовательно, автоматически восстановить пакеты контента для покупок, которые они совершили другие устройства.
Это то, что я мог делать на Android целую вечность, и пользователи спрашивают, почему приложение не может сделать то же самое на iOS.
(Кстати, я знаю, что способ, рекомендованный Apple, заключается в том, чтобы сохранить квитанцию о покупке от Apple на моем сервере и использовать ее для проверки повторной загрузки контента, но по разным причинам это было невозможно)