By default, the Stripe React Native SDK now resolves its Stripe iOS SDK dependency through Swift Package Manager instead of CocoaPods. This requires building your app with dynamic linking. For non-Expo apps, add to your Podfile:
use_frameworks! :linkage => :dynamicFor Expo apps, set "useFrameworks": "dynamic" via the expo-build-properties plugin.
See Stripe iOS SDK resolution in the README for details, troubleshooting, and temporary workarounds.
React Native versions < 0.75 will continue using CocoaPods. However, these React Native versions are deprecated and will not be supported in future Stripe React Native SDK versions.
Recent versions of @stripe/stripe-react-native depend on stripe-android 23.x, which requires:
compileSdkVersion36targetSdkVersion36minSdkVersion23
Update your app's android/build.gradle:
android {
compileSdkVersion 36
defaultConfig {
minSdkVersion 23
targetSdkVersion 36
}
}If you cannot upgrade to Android SDK 36, pin to an older @stripe/stripe-react-native version that uses stripe-android 22.x or earlier.
This is an Android-specific build requirement and does not affect iOS.
The legacy Apple Pay and Google Pay APIs (useApplePay, useGooglePay, presentApplePay, confirmApplePayPayment, initGooglePay, presentGooglePay, createGooglePayPaymentMethod, <ApplePayButton />, <GooglePayButton />) were removed in v0.29.0.
Use the Platform Pay API instead:
Replaced by isPlatformPaySupported:
- isGooglePaySupported(myParams);
+ isPlatformPaySupported({googlePay: myParams});presentApplePay, confirmApplePayPayment, initGooglePay, presentGooglePay, createGooglePayPaymentMethod
Replaced by:
confirmPlatformPaySetupIntent— to confirm a setup intentconfirmPlatformPayPayment— to confirm a payment intentcreatePlatformPayPaymentMethod— to create a payment methodcreatePlatformPayToken— if migrating from Tipsi Stripe and using the legacy Tokens API
Replaced by updatePlatformPaySheet, which accepts an object with the applePay key containing summaryItems, shippingMethods, and errors.
Replaced by the usePlatformPay hook. Callbacks previously passed to useApplePay are now set via props on <PlatformPayButton />.
Replaced by <PlatformPayButton />.
v0.8.0 changed parameters for createPaymentMethod, confirmPayment, confirmSetupIntent, collectBankAccountForPayment, and collectBankAccountForSetup.
Affects the first argument to createPaymentMethod, and the second argument to confirmPayment, confirmSetupIntent, collectBankAccountForPayment, and collectBankAccountForSetup.
All payment-method-specific fields now go under a nested paymentMethodData key:
- {
- type: 'Card',
- token: myToken,
- billingDetails: myBillingDetails,
- }
+ {
+ paymentMethodType: 'Card',
+ paymentMethodData: {
+ token: myToken,
+ billingDetails: myBillingDetails,
+ },
+ }This pattern applies to all payment method types (Ideal, SepaDebit, Bancontact, Klarna, etc.).
setupFutureUsage is now passed as the third argument to confirmPayment and confirmSetupIntent, instead of the second.
Affects PaymentMethod.Result, PaymentIntent.Result, and SetupIntent.Result.