From 94a681c34536cf79b4f802ec5191fdf18c073977 Mon Sep 17 00:00:00 2001 From: Abdulaziz Alobaili Date: Thu, 13 Feb 2025 16:15:46 +0300 Subject: [PATCH] Call the completion handler on the main thread This fixes a crash when using the Frames iOS SDK in a SwiftUI app by wrapping the returned `UIViewController` from `PaymentFormFactory.buildViewController(configuration:style:completionHandler:)` in a SwiftUI `UIViewControllerRepresentable`. Related support ticket: 45249 --- .../UI/PaymentForm/ViewModel/DefaultPaymentViewModel.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Source/UI/PaymentForm/ViewModel/DefaultPaymentViewModel.swift b/Source/UI/PaymentForm/ViewModel/DefaultPaymentViewModel.swift index c93a48195..2e6d7aea8 100644 --- a/Source/UI/PaymentForm/ViewModel/DefaultPaymentViewModel.swift +++ b/Source/UI/PaymentForm/ViewModel/DefaultPaymentViewModel.swift @@ -182,7 +182,10 @@ extension DefaultPaymentViewModel: PaymentViewControllerDelegate { checkoutAPIService.createToken(.card(card)) { [weak self] result in self?.logTokenResult(result) self?.isLoading = false - self?.cardTokenRequested?(result) + + DispatchQueue.main.async { + self?.cardTokenRequested?(result) + } } }