Приветствую!
Добавил в свое приложение встроенные покупки. Наверняка все знают, что покупкам необходимо некоторое время для прогрузки. Моя проблема заключается в том, что если покупки не успели прогрузиться и я в этот момент вышел в другое меню, то приложение вылетает.
Подскажите, как исправить данную ситуацию?
Встроенные покупки. Приложение падает
Помогли найти решение проблемы на другом форуме.
Добавил данные строки кода в приложение и все встало на свои места.
self.request.delegate = nil
[self.request.cancel]
self.request = nil
Спасибо, Денис! А в Вашем коде для покупок используется класс NSDate? С ним не возникло проблем с переходом Swift2 на Swift3?
Лично у меня они добавлены в часть кода, связанного с переходом на другую сцену. Т.е. удаляем все ноды со сцены, все экшены и все что связано с покупками.
Добрый день.
К сожалению, пока что не особо понял(( У меня вот такая ситуация:
- Если запустить приложение без подключения к интернету и нажать кнопку “Купить”, приложение вылетает.
- Если запустить приложение без интернета, когда оно запустилось, включить интернет и нажать кнопку “Купить”, оно вылетает
- Если запустить приложение с подключенным интернетом, то всё срабатывает корректно при нажатии кнопки “Купить”.
Не сталкивались с таким?
При нажатии кнопки купить срабатывает следующее (как в уроке):
//при нажатии кнопки “Купить” создаем платеж
@IBAction func buyContentButtonPressed(_ sender: Any) {
let payment = SKPayment(product: productToPurchase)
//добавляем платеж в очередь
SKPaymentQueue.default().add(payment)
//далее наступает фаза func paymentQueue ниже
}
Приветствую!
По поводу вылета приложения без подключенного интернета. У меня подобных проблем не было. Если нажимаешь кнопку покупки, то просто на просто не происходило совершенно никаких действий. Скорее проблема в коде. Советую его пересмотреть.
Лично я изучал встроенные покупки по данному видео уроку:
Здесь только не хватает функции с проверкой была ли покупка сделана когда-либо (речь идет о не растрачиваемой покупке). Т,е, если, к примеру, нажимаешь кнопку восстановления покупок, то система чекает данные и отвечает, что не было совершено ни одной покупки и восстанавливать нечего.
Также советую изучить Reachibility (надеюсь правильно написал). Данный класс позволяет определить подключен ли интернет. И если нет, то выводить алерт.