yoomoney / yookassa-payments-swift

This library allows implementing payment acceptance into mobile apps on iOS and works as an extension to the YooMoney API
https://yookassa.ru/developers
MIT License
41 stars 41 forks source link

Крашится приложение при вызове платежного модуля на iOS 15.1 #123

Closed ialeshqa closed 2 years ago

ialeshqa commented 2 years ago

На iOS 15.0.1 все работает корректно, на обновленной прошивке вылетает приложение при вызове платежного модуля

Метод:

DispatchQueue.main.async { (UIApplication.shared.delegate as? AppDelegate)?.window?.rootViewController?.present(self.viewController as! UIViewController, animated: true, completion: nil) }

crashlog во вложени crashlog.crash.zip

vladlenskiy commented 2 years ago

+1

vladlenskiy commented 2 years ago

@ialeshqa нашел какой-нибудь способ для решения проблемы?

ialeshqa commented 2 years ago

@ialeshqa нашел какой-нибудь способ для решения проблемы?

поддержка посоветовала обновить библиотеку, не проверяли еще этот способ

alex-snap commented 2 years ago

+1

+1

vladlenskiy commented 2 years ago

@ialeshqa а какая у вас версия SDK кассы установлена? Просто мы используем 6.0.0 и вот думаю поможет ли обновление до новой версии)

Liptor commented 2 years ago

@VladlenKaveev удалось решить проблему? у нас обновление библиотеки до версии 6.4.0 не сработало, как и то что советовали в поддержке

vladlenskiy commented 2 years ago

@Liptor пока нет 😕

vladlenskiy commented 2 years ago

@Liptor @ialeshqa Посмотрев аналогичные проблемы у других, все-таки удалось заставить модуль работать на iOS 15.1)

Было: let inputData: TokenizationFlow = .tokenization(tokenizationModuleInputData) viewController = TokenizationAssembly.makeModule(inputData: inputData, moduleOutput: self) DispatchQueue.main.async { let rootViewController = UIApplication.shared.keyWindow!.rootViewController! rootViewController.present(self.viewController!, animated: true, completion: nil) }

Стало: DispatchQueue.main.async { let inputData: TokenizationFlow = .tokenization(tokenizationModuleInputData) self.viewController = TokenizationAssembly.makeModule(inputData: inputData, moduleOutput: self) let rootViewController = UIApplication.shared.keyWindow!.rootViewController! rootViewController.present(self.viewController!, animated: true, completion: nil) }

P.S Еще не тестировали на других версиях iOS

starxor commented 2 years ago

Закрываю вопрос. Так как он не связан с библиотекой напрямую. Ошибка происходила из-за презентации UI со второстепенного потока.