Почему нажатие кнопки в пользовательском интерфейсе Paypal приводит к сбою моего приложения iOS?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Почему нажатие кнопки в пользовательском интерфейсе Paypal приводит к сбою моего приложения iOS?

Сообщение Anonymous »

Краткое описание проблемы: после успешной проверки учетных данных Paypal пользовательский интерфейс Paypal возвращается к экрану с вращающейся кнопкой. При нажатии этой кнопки вызывающее приложение аварийно завершает работу. (Подробнее о последовательности событий описано ниже.)
Созвездия возникновения ошибки:
Ошибка появляется при тестировании на физическом устройстве. В тестах с различными симуляторами в Xcode этого не происходит.
Тогда ошибка появляется только в контексте первого первоначального платежа через Paypal. Он не отображается при последующих платежах.
Информация о том, как мое приложение использует SDK Paypal:
импортировать PayPalCheckout
Версия: PayPalCheckout (0.109.0)
Разделы в Swift-коде:

Код: Выделить всё

Checkout.setCreateOrderCallback { action in

let amount = PurchaseUnit.Amount(currencyCode: .eur, value: identifiersDict[Identifiers.chargeValue.rawValue]?.input ?? "")

let purchaseUnit = PurchaseUnit(amount: amount)

let order = OrderRequest(intent: .capture, purchaseUnits: [purchaseUnit]

action.set(orderId: answerFromPaymentPaypalBackend.id)

}

Checkout.setOnApproveCallback { approval in

approval.actions.authorize { response, error in

...

Checkout.setOnCancelCallback {

...

Checkout.start(presentingViewController: self)
presentingViewController уже является функцией PPPCheckout SDK.
Информация о сбое найдена в Crashlytics:
PayPalCheckout__swift_memcpy168_8() и PayPalCheckoutblock_destroy_helper( )
Последовательность событий в деталях:
(Для удобства привожу номера появляющихся экранов PayPal)
PresentingViewController отобразит следующие экраны:
Экран 1 // Ввод адреса электронной почты:
Изображение

Экран 3 // Ввод пароля:
Изображение

Экран 4 / Диалог 2FA:
Изображение

Экран 5 // повторное появление экрана 1:
Изображение

Экран 6 // Подтверждение суммы
[img]https://i.sstatic.net /8M1I91KT.png[/img]

Все, начиная с экрана 6, работает нормально.
Теперь: для ошибки важно появление экрана 5. В безошибочном случае этот экран появляется лишь на долю секунды, а затем продолжает экран 6. Но в случае ошибки экран 5 не исчезает. Текст на кнопке этого экрана, которая на экране 1 была «Далее», изменился на вращающееся колесо. Это продолжает вращаться. Когда нажимается вращающаяся кнопка, мое приложение для звонков выходит из строя.
Я делаю вывод, что определенное сочетание в PPPCheckout SDK не позволяет экрану 5 закрыться и продолжить экран 6. Я ожидаю, что это будет основная проблема, вызывающая все проблемы. Факт сбоя при нажатии вращающейся кнопки может быть второстепенной проблемой.
Из других статей о проблемах PayPal я узнал, что это может быть вызвано также конфликтами с другими библиотеками, используемыми в приложение. Вот почему я перечисляю здесь фреймворки, используемые в моем приложении:

Код: Выделить всё

  use_frameworks!

pod 'lottie-ios'

pod 'SnapKit', '~> 5.0.0'

pod 'FirebaseAnalytics'

pod 'FirebaseCrashlytics'

pod 'Firebase/Messaging'

pod 'Stripe'

pod 'PayPalCheckout'

pod "Rollbar", "~> 1.4.2"

pod 'Analytics', '~> 4.1'

pod 'AppAuth'
Мне хотелось бы знать, сталкивались ли уже другие разработчики с подобным явлением. И, конечно же, любой намек на решение будет оценен по достоинству.

Подробнее здесь: https://stackoverflow.com/questions/786 ... my-ios-app
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»