adyen-ios
adyen-ios copied to clipboard
[BUG] With Adyen delivered by SPM Adding Apple Pay card causes crash
Describe the bug I'm using Adyen dropin to add a regular card or Apple Pay card. I'm in progress of migrating from Cocoapods to SPM. The problem appears when I'm trying to add an Apple Pay card as a payment method. When I'm confirming the authorization payment and the system popup is in processing state, the app crashes with error:
-[AdyenComponents.ApplePayComponent paymentAuthorizationViewController:didAuthorizePayment:completion:]: unrecognized selector sent to instance
To Reproduce Steps to reproduce the behavior:
- Add Adyen to the project with SPM
- Open dropin component with Apple Pay configured
- Try to add Apple Pay card from wallet
Expected behavior Card is correctly processed.
Environment
- Device: any device (not simulator)
- iOS Version: 16.6.1
- SDK Version: 17,0: (21A325)
- Adyen API Version: 5.3.0
- Package management system: SPM
- Xcode version: 15.0
- Mac OS type: Intel
Additional context The problem does not occur when Adyen is provided by Cocoapods. The problem occurs also on Adyen v5.6.0. Project is build with Tuist. The problem occurs on both v3 and v4.
Hi @odys1528,
I just tried to reproduce the issue by building a small example app but can't reproduce the issue you are describing. Is there a way for you to isolate the issue (e.g. not using Tuist)?
Best, Alex
The project is pretty complex. Let me try to post some details.
In Package.swift
PackageSettings
is initiated with productTypes
including "Adyen": .framework
.
let packageSettings = PackageSettings(
productTypes: [
"Adyen": .framework
],
...
)
Then Package
is initiated with dependencies
including
.package(
url: "https://github.com/Adyen/adyen-ios",
exact: "5.3.0"
)
Then a Module
struct mainTargetDependencies
includes .external(name: "Adyen")
like this:
struct SomeModule: Module {
var mainTargetDependencies: [TargetDependency] {
.external(name: "Adyen")
}
...
}
And as described, it causes the app to build and run correctly until a payment attempt.