expo: [expo-payments-stripe] Stripe pod does not compile on Xcode 11.4

šŸ› Bug Report

Environment

I’ve installed expo-payments-stripe on a bare React Native setup with react-native-unimodules set up and configured.

I encounter an error when building for iOS as outlined in this Stripe Issue: https://github.com/stripe/stripe-ios/issues/1525

Steps to Reproduce

  1. Install the latest version of expo-payments-stripe (e.g., yarn add expo-payments-stripe)
  2. Navigate to the ios folder and run pod install - you’ll notice that version 13.2.0 of the Stripe SDK pod is installed.
  3. Try to build the app (e.g., yarn start)

Expected Behavior

The project should build without any errors.

Actual Behavior

The project returns a compiler error as outlined in the Stripe issue I mentioned above:

Incompatible block pointer types sending '__strong STPAPIResponseBlock _Nonnull' (aka 'void (^__strong)(ResponseType _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)') to parameter of type 'void (^ _Nonnull)(STPSource * _Nullable __strong, NSHTTPURLResponse * _Nullable __strong, NSError * _Nullable __strong)'

Reproducible Demo

I’m going to skip this step because I feel it’s unnecessary in this particular case. The issue is not with the project and does not need to be troubleshooted. It’s simply relying on an outdated dependency that needs to be fixed.

It seems that the next supported version on Stripe is version 14.0.1 which is just one version removed from the current one. I’ve found Stripe’s changelog for that update here.

I’ve also manually changed this line in the plugin to: s.dependency 'Stripe', '~> 14.0.1' and confirmed that the issue goes away.

Unfortunately I’m just getting started with the package and can’t test whether this has broken any existing functionality yet. Ideally someone with more familiarity with the package could review the few items in the changelog and confirm that it’s ok.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Reactions: 10
  • Comments: 23 (2 by maintainers)

Commits related to this issue

Most upvoted comments

Hey all, I just published expo-payments-stripe@8.2.2 which includes Stripe at ~> 14.0.1 by default — this should get rid of that nasty problem. Thank you for your patience!

I can confirm this, it’s even working with xcode 11.5. Thanks so much for your time on this @sjchmiela

This is our experience so far. We recently ejected expo to integrate with expo-payments-stripe which didn’t work. Then tried with tipsi-stripe. Tipsi-stripe didn’t work as well because it is relying on some of very old components from 2017. Since we could not downgrade, tipsi-stripe didn’t work, specially for Google pay.

We end up integrating Stripe official native components using custom react native bridging… Very painful process and we spend months just to figure out that expo-payments-stripe and tipsi-stripe does not work with latest frameworks…