Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] With Adyen delivered by SPM Adding Apple Pay card causes crash #1525

Open
odys1528 opened this issue Feb 21, 2024 · 2 comments
Open

[BUG] With Adyen delivered by SPM Adding Apple Pay card causes crash #1525

odys1528 opened this issue Feb 21, 2024 · 2 comments
Labels

Comments

@odys1528
Copy link

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:

  1. Add Adyen to the project with SPM
  2. Open dropin component with Apple Pay configured
  3. 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.

@odys1528 odys1528 added the bug label Feb 21, 2024
@goergisn
Copy link
Contributor

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

@odys1528
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants