-
Notifications
You must be signed in to change notification settings - Fork 299
Fix iOS build on new arch 0.81 with static linkage #2129
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
Fix iOS build on new arch 0.81 with static linkage #2129
Conversation
|
Thanks for creating this PR Here are some reference links regarding the changes for this issue: |
|
just tried stripe 0.53.0 with the fix merged by @janicduplessis and it works fine with react native 0.81.4 |
|
@janicduplessis when are we releasing the new version for these changes as I am unable to run my expo app with the same issue as 0.53.0 doesn't have these changes incorporated yet. |
|
Its abit confusing now, same packages installed and still getting the problem. |
|
@NKANGIJAFARI have you checked if in node_modules/@stripe/ios/NewArch/... the fixes are integrated? most likely you still have the old commit. What i did is to put the exact commit in the package.json so i was sure it took the fixes. package.json: |
I confirm, fetching the commit directly works!!! |
|
@DanieleSimic I confirm also, using the commit built my app. Thanks so much |
* Revert "Use files instead of npmignore to cleanup npm package (#2081)" (#2099) This reverts commit 9b24cd8. * Update package.json (#2105) * Re-enable FC tests on iOS by forcing native flow (#2104) * Re-enable FC tests on iOS by forcing native flow * Fix Android build * fix: add missing await to NativeStripeSdk.initialise calls (#2113) The initialise method is async and returns a Promise, but it wasn't being awaited. This could cause race conditions where subsequent Stripe operations might be called before initialization completes. Changes: - Added await to initStripe function call to NativeStripeSdk.initialise - Wrapped useEffect initialization in async IIFE - Both Android and iOS initialization paths now properly await completion * Parse link config for embedded (#2115) * Remove package-lock.json (#2110) * Use files instead of npmignore to cleanup npm package (#2109) * Revert "Revert "Use files instead of npmignore to cleanup npm package (#2081)" (#2099)" This reverts commit c8d2bb2. * Use npm publish * Improve android ci build performance (#2111) * Improve android ci build performance * Test * Update gradle action * Use gradle cache action for both * Improve apple pay docs (#2117) * Embedded invisible Android fix (#2118) * Try to fix layout issue * Update CHANGELOG.md * Add isLoaded (#2120) * Bump Android SDK version to 21.26.+ (#2124) * Bump Android SDK version to 21.26.+ * wip? * 0.53.0 (#2121) * Update CHANGELOG.md * v0.53.0 (#2127) * Fix iOS build on new arch 0.81 with static linkage (#2129) * Fix iOS build on new arch 0.81 with static linkage * Add changelog * Fix a potential bug in the stop method. (#2133) * Fix handling images with alpha (#2134) * Update CHANGELOG.md (#2135) * v0.53.1 (#2136) * Set up headless task when using StripeProvider (#2128) * Migrate CI to bitrise (#2137) * Migrate CI to bitrise * Update iOS test name --------- Co-authored-by: Nick Porter <88012362+porter-stripe@users.noreply.github.com> * feat: add Alma implementation (#2140) Co-authored-by: Bella Koch <160939932+amk-stripe@users.noreply.github.com> * Update CHANGELOG.md (#2149) * v0.54.0 (#2150) * Fix stripe ui errors when rotating screen (#2147) * Fix stripe ui errors when rotating screen * Fix format * 0.54.1 proposal (#2153) * v0.54.1 (#2154) * Add iOS patch info to README (#2102) * Add info about apply the patch to fix the iOS old architecture codegen issue * Update wording * update instructions to specify that issue is fixed with latest version * fix typo * Fix pods cache on CI (#2159) * Fix pods cache on CI * Test * Update CODEOWNERS (#2162) * Bump iOS version to ~> 24.24.0 (#2163) * Bump iOS version to ~> 24.24.0 * update pods * Add ability to applyLiquidGlass and update navigationBarStyle (#2165) * Add ability to applyLiquidGlass and update navigationBarStyle This reverts commit def71e55e0cea7e322333a4c47e4c1b3815c682d. * kick off ci * Revert "kick off ci" This reverts commit 9447677. * Add warning message to wave-atom affected releases (#2168) * allow `uk_` keys for customer ephemeral keys (#2169) * Propose 0.55.0 (#2175) * v0.55.0 (#2176) * Fix issue with missing metadata on FC events on Android (#2178) * Fix issue with missing metadata on FC events on Android * Add note in changelog * Add ConfirmationTokens API (#2166) * feat: Add confirmation token support for embedded payment element Implements confirmation token callbacks for the embedded payment element, allowing merchants to use confirmationTokenConfirmHandler as an alternative to the traditional confirmHandler flow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Committed-By-Agent: claude * Test iOS CT path * Update Android impl * Update embedded screen * Add embedded CT support * run code gen * Add import * Scroll to find button * Add notes about API * Fix race condition #2166 (comment) * fix mappers * lint * Revert "Fix race condition" This reverts commit ded8d94. --------- Co-authored-by: Claude <noreply@anthropic.com> * Add missing mappings for Link payment method type (#2179) * Add missing mappings for Link payment method type * Add note to changelog * Update CHANGELOG.md (#2184) * v0.55.1 (#2185) * Code gen update (#2151) * Fix border radius not being applied to Apple Pay button (#2189) * GA CTs and CS (#2188) * Fix patch releases not automatically being used from `stripe-android` (#2191) * Customersession for customersheet and OBO (#2192) * public api * update react native sdk version * backend changes * emitter layer * emission listener and callback spec * callback listener and emission caller * CustomerSheet w. CustomerSession Screen * uncomment OBO parsing * update iOS sdk version * fix confirmationTokenConfirmHandler * Update CHANGELOG.md * fix embedded-cpm e2e test wait until payment methods are loaded add padding so the e2e test can actually click complete payment * Handle lifecycle states better (#2200) * Handle lifecycle states better * Simplify fix * Simplify fix more * Update CHANGELOG.md (#2204) * v0.56.0 (#2206) * Remove fragments (#2174) * Remove fragments * Cleanup * Cleanup * More cleanup * Fix dynamicColorFromParams * Fix custom payment methods * Fix dynamicColorFromParams * Remove toBundle * Fix format * Cleanup * Remove Giropay (#2209) * Fix how we get root VC for scene based apps (#2216) * Use RCTKeyWindow rather than UIApplication window * Update CHANGELOG.md * Update iOS SDK to 25.0.0 and Android SDK to 22.0.0 (#2210) * Update iOS SDK to 25.0.0 * [TEMP] TODO DELETE THIS - make example prefer maven local * Update Android * update changelog * Revert "[TEMP] TODO DELETE THIS - make example prefer maven local" This reverts commit 66b9176. * lint android and make it part of the pre-commit * update with latest * update example pod * Add dev guide to claude md (#2215) * initial * Claude rewrites my initial guide * Updates root view controller access to match `master` * Fix android compilation --------- Co-authored-by: Nick Porter <88012362+porter-stripe@users.noreply.github.com> Co-authored-by: Till Hellmund <tillh@stripe.com> Co-authored-by: Mikhail <mveehkim@gmail.com> Co-authored-by: Janic Duplessis <janicduplessis@gmail.com> Co-authored-by: George Birch <gbirch@stripe.com> Co-authored-by: Tian Zhao <tianzhao@stripe.com> Co-authored-by: Jay Newstrom <jaynewstrom@stripe.com> Co-authored-by: rghirell <rghirell@student.42.fr> Co-authored-by: Bella Koch <160939932+amk-stripe@users.noreply.github.com> Co-authored-by: Samer Alabi <141707240+samer-stripe@users.noreply.github.com> Co-authored-by: charliecruzan-stripe <97612659+charliecruzan-stripe@users.noreply.github.com> Co-authored-by: John Woo <99628984+wooj-stripe@users.noreply.github.com> Co-authored-by: Mat Schmid <mats@stripe.com> Co-authored-by: guido-stripe <103590313+guido-stripe@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Andrew Harrison <Twigz@users.noreply.github.com> Co-authored-by: Yuki <yuki@stripe.com> Co-authored-by: Twig <aharris.1990@gmail.com>
* Revert "Use files instead of npmignore to cleanup npm package (#2081)" (#2099) This reverts commit 9b24cd8. * Update package.json (#2105) * Re-enable FC tests on iOS by forcing native flow (#2104) * Re-enable FC tests on iOS by forcing native flow * Fix Android build * fix: add missing await to NativeStripeSdk.initialise calls (#2113) The initialise method is async and returns a Promise, but it wasn't being awaited. This could cause race conditions where subsequent Stripe operations might be called before initialization completes. Changes: - Added await to initStripe function call to NativeStripeSdk.initialise - Wrapped useEffect initialization in async IIFE - Both Android and iOS initialization paths now properly await completion * Parse link config for embedded (#2115) * Remove package-lock.json (#2110) * Use files instead of npmignore to cleanup npm package (#2109) * Revert "Revert "Use files instead of npmignore to cleanup npm package (#2081)" (#2099)" This reverts commit c8d2bb2. * Use npm publish * Improve android ci build performance (#2111) * Improve android ci build performance * Test * Update gradle action * Use gradle cache action for both * Improve apple pay docs (#2117) * Embedded invisible Android fix (#2118) * Try to fix layout issue * Update CHANGELOG.md * Add isLoaded (#2120) * Bump Android SDK version to 21.26.+ (#2124) * Bump Android SDK version to 21.26.+ * wip? * 0.53.0 (#2121) * Update CHANGELOG.md * v0.53.0 (#2127) * Fix iOS build on new arch 0.81 with static linkage (#2129) * Fix iOS build on new arch 0.81 with static linkage * Add changelog * Fix a potential bug in the stop method. (#2133) * Fix handling images with alpha (#2134) * Update CHANGELOG.md (#2135) * v0.53.1 (#2136) * Set up headless task when using StripeProvider (#2128) * Migrate CI to bitrise (#2137) * Migrate CI to bitrise * Update iOS test name --------- Co-authored-by: Nick Porter <88012362+porter-stripe@users.noreply.github.com> * feat: add Alma implementation (#2140) Co-authored-by: Bella Koch <160939932+amk-stripe@users.noreply.github.com> * Update CHANGELOG.md (#2149) * v0.54.0 (#2150) * Fix stripe ui errors when rotating screen (#2147) * Fix stripe ui errors when rotating screen * Fix format * 0.54.1 proposal (#2153) * v0.54.1 (#2154) * Add iOS patch info to README (#2102) * Add info about apply the patch to fix the iOS old architecture codegen issue * Update wording * update instructions to specify that issue is fixed with latest version * fix typo * Fix pods cache on CI (#2159) * Fix pods cache on CI * Test * Update CODEOWNERS (#2162) * Bump iOS version to ~> 24.24.0 (#2163) * Bump iOS version to ~> 24.24.0 * update pods * Add ability to applyLiquidGlass and update navigationBarStyle (#2165) * Add ability to applyLiquidGlass and update navigationBarStyle This reverts commit def71e55e0cea7e322333a4c47e4c1b3815c682d. * kick off ci * Revert "kick off ci" This reverts commit 9447677. * Add warning message to wave-atom affected releases (#2168) * allow `uk_` keys for customer ephemeral keys (#2169) * Propose 0.55.0 (#2175) * v0.55.0 (#2176) * Fix issue with missing metadata on FC events on Android (#2178) * Fix issue with missing metadata on FC events on Android * Add note in changelog * Add ConfirmationTokens API (#2166) * feat: Add confirmation token support for embedded payment element Implements confirmation token callbacks for the embedded payment element, allowing merchants to use confirmationTokenConfirmHandler as an alternative to the traditional confirmHandler flow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Committed-By-Agent: claude * Test iOS CT path * Update Android impl * Update embedded screen * Add embedded CT support * run code gen * Add import * Scroll to find button * Add notes about API * Fix race condition #2166 (comment) * fix mappers * lint * Revert "Fix race condition" This reverts commit ded8d94. --------- Co-authored-by: Claude <noreply@anthropic.com> * Add missing mappings for Link payment method type (#2179) * Add missing mappings for Link payment method type * Add note to changelog * Update CHANGELOG.md (#2184) * v0.55.1 (#2185) * Code gen update (#2151) * Fix border radius not being applied to Apple Pay button (#2189) * GA CTs and CS (#2188) * Fix patch releases not automatically being used from `stripe-android` (#2191) * Customersession for customersheet and OBO (#2192) * public api * update react native sdk version * backend changes * emitter layer * emission listener and callback spec * callback listener and emission caller * CustomerSheet w. CustomerSession Screen * uncomment OBO parsing * update iOS sdk version * fix confirmationTokenConfirmHandler * Update CHANGELOG.md * fix embedded-cpm e2e test wait until payment methods are loaded add padding so the e2e test can actually click complete payment * Handle lifecycle states better (#2200) * Handle lifecycle states better * Simplify fix * Simplify fix more * Update CHANGELOG.md (#2204) * v0.56.0 (#2206) * Remove fragments (#2174) * Remove fragments * Cleanup * Cleanup * More cleanup * Fix dynamicColorFromParams * Fix custom payment methods * Fix dynamicColorFromParams * Remove toBundle * Fix format * Cleanup * Remove Giropay (#2209) * Fix how we get root VC for scene based apps (#2216) * Use RCTKeyWindow rather than UIApplication window * Update CHANGELOG.md * Update iOS SDK to 25.0.0 and Android SDK to 22.0.0 (#2210) * Update iOS SDK to 25.0.0 * [TEMP] TODO DELETE THIS - make example prefer maven local * Update Android * update changelog * Revert "[TEMP] TODO DELETE THIS - make example prefer maven local" This reverts commit 66b9176. * lint android and make it part of the pre-commit * update with latest * update example pod * Add dev guide to claude md (#2215) * initial * Claude rewrites my initial guide * Update CHANGELOG (#2218) * v0.57.0 (#2219) * Fix crash when not setting custom flag (#2220) * FIx crash * Update CHANGELOG.md * Refactor + unit tests paymentsheet and element (#2211) * Remove EPH key from CT screens (#2222) * Add more unit tests on Android (#2212) * Add more mappers tests * Add address view tests * Update EmbeddedPaymentElementView.kt * Update EmbeddedPaymentElementView.kt --------- Co-authored-by: Nick Porter <88012362+porter-stripe@users.noreply.github.com> Co-authored-by: Till Hellmund <tillh@stripe.com> Co-authored-by: Mikhail <mveehkim@gmail.com> Co-authored-by: Janic Duplessis <janicduplessis@gmail.com> Co-authored-by: George Birch <gbirch@stripe.com> Co-authored-by: Tian Zhao <tianzhao@stripe.com> Co-authored-by: Jay Newstrom <jaynewstrom@stripe.com> Co-authored-by: rghirell <rghirell@student.42.fr> Co-authored-by: Bella Koch <160939932+amk-stripe@users.noreply.github.com> Co-authored-by: Samer Alabi <141707240+samer-stripe@users.noreply.github.com> Co-authored-by: charliecruzan-stripe <97612659+charliecruzan-stripe@users.noreply.github.com> Co-authored-by: John Woo <99628984+wooj-stripe@users.noreply.github.com> Co-authored-by: Mat Schmid <mats@stripe.com> Co-authored-by: guido-stripe <103590313+guido-stripe@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Andrew Harrison <Twigz@users.noreply.github.com> Co-authored-by: Yuki <yuki@stripe.com> Co-authored-by: Twig <aharris.1990@gmail.com>
* Configuring successfully so far * Adds in registering crypto user * Additional compilation for registerWallet and collectKYC * No more error when trying to use the presenter, but not presenting yet * Example iOS configure implementation * Fixing android side of things * Functioning identity and payment selection * Update coloring to be a string * Update HomeScreen.tsx * At least sometimes display the payment image * Added bank account button * Adds in registering a wallet UI * Fix string * Updates Stripe SDK to 24.21.0 and adds CryptoOnramp * Adds createCryptoPaymentToken api * Modeled perform checkout as if the clientSecret was just a string * Wrap the collapsible in a StripeProvider * Updates the actual Android released version * Stop creating a map for the isLinkUser response * Adds in emitting results for authorize and checkout callbacks * Adds in missing authorize call * handle through a promise instead of a listener * Update to use promises with types * Remove unnecessary emitters * No need to return a map anymore * Remove unnecessary type declarations * update api naming * Rename collectPaymentMethod * Add in code for checkout * Implements first 5 iOS CryptoOnrampCoordinator methods * Implements onrampAuthorize * Implements attachKycInfo on iOS * Implements createCryptoPaymentToken on iOS * Minor refactor to reduce duplication around finding presenting view controller * Implements verifyIdentity on iOS * Update build.gradle * Moves view controller access out of Tasks * Implements collectPaymentMethod on iOS * Adds in ui for creating a crypto payment token * Button for authorization, need LAI inserted * View controller access was still on a background thread (the RN bindings are called from the background). This fixes them. * Renames provideCheckoutClientSecret parameter * Implements performCheckout on iOS * Add in kyc attachment ui for testing * Adds in the api for updating phone number * Adds Apple Pay support on iOS * Removes unneeded structures surrounding single return values * zeros out kyc ssn * Propagates errors appropriately for kycInfo collection on iOS * fix android build * Updates iOS SDK to latest * Implements onrampAuthorize on iOS * Adds test UI for onrampAuthorize * Silences warning in unimplemented updatePhoneNumber on iOS * Update CryptoOnrampScreen.tsx * propagate configuration result * adds unimplemented logout api * Uses appropriate emitter on iOS for checkout * Gets Check Out working in example; removes duplicate Authorize UI * Change emitting to use existing invocation * Adds `StripeProvider` with publishableKey and merchantIdentifier for apple pay * Silences warning in unimplemented API on iOS * move functions to useOnramp() hook * refactor: move LinkUserInfo type to Onramp.ts and update imports * refactor: consolidate CryptoNetwork and KycInfo types in Onramp.ts * rm idtype and kycinfo fields * rm "onramp" from useOnramp() functions * add OnrampConfiguration; cleanup defaults * Switch iOS impl to use resolver instead of rejector in error cases * Update example app to use new error handling pattern * inline for simplicity * update types * fix codegen * Use VoidResult type for remaining APIs on iOS * update configureOnramp() * update hasLinkAccount * fix registerWalletAddress and registerLinkUser * fix rest of Android Onramp; update AuthorizeResult * Fix AuthorizeResult shape on iOS impl * fix handleOnrampAuthenticationResult * alert configuration success * set version * improve demo UI * defaults * more UI cleanup * Makes appearance specification more permissive on iOS in the case of only specifying dark or light colors * [onramp][private-beta] Conditionally include Onramp; fixes & improvements (#2094) * POC: conditionally include Onramp (Android only) * use useCallback(); cleanup * add jdoc * document onramp types * more docs * WIP on iOS Split * improve checkout API * rm provideCheckoutClientSecret from useOnramp() * Move onramp functions to their own module * Fixes emitOnCheckoutClientSecretRequested using new onramp-specific protocol * improve collectPaymentMethod signature * fix Android * (iOS) Allows a throwing lambda to propagte an error in `provideCheckoutClientSecret` * improve error message * fix errors; configure via gradle.properties * [Onramp] Add create auth intent, create onramp session and checkout. (#2088) * Integrate OnrampBackend API with authentication flow - Add OnrampBackend class for createAuthIntent API calls - Replace direct authenticateUser with createAuthIntent + authorize flow - Update CryptoOnrampScreen to use two-step authentication - Add proper error handling and state management for auth flow Committed-By-Agent: cursor * Fix OnrampBackend import path - Update import from '../server/onrampBackend' to '../../server/onrampBackend' - Resolves Metro bundler module resolution error Committed-By-Agent: cursor * Complete onramp session and checkout integration with loading states - Add createOnrampSession endpoint to OnrampBackend - 60-second timeout, Bearer auth, proper error handling - Snake_case request format (cos_id) matching backend API - Add checkout endpoint to OnrampBackend - POST /checkout with session ID and auth token - Returns OnrampSessionResponse with client_secret - Implement session caching and checkout flow - Cache onrampSessionId when session creation succeeds - Replace INSERT_CLIENT_SECRET_HERE with real checkout API call - Update performCheckout to use cached session ID - Add comprehensive validation system - validateOnrampSessionParams matches Android validation logic - Smart button enabling based on all required parameters - Clear messaging for missing requirements - Implement loading states for better UX - Session creation: 'Creating Session...' with disabled state - Checkout: 'Checking Out...' with disabled state - Status messages show progress during operations - Prevent multiple clicks with proper state management - Enhanced error handling and user feedback - try/finally blocks ensure loading states always reset - Detailed error messages from backend API responses - Auth token validation before checkout operations Committed-By-Agent: cursor * Refactor OnrampBackend architecture with reusable HTTP helper - Extract common HTTP request logic into generic makeRequest<T> helper - Add configurable options for timeout, authentication, and response transformation - Reduce code duplication by ~65% across all API methods - Improve maintainability with centralized error handling and logging - Simplify method implementations to focus on business logic - Add proper TypeScript typing for cross-platform timeout support Benefits: - createAuthIntent: 64 lines → 6 lines - createOnrampSession: Uses timeout + auth + response transformation - checkout: Uses timeout + auth + response transformation - Consistent error handling and logging across all endpoints - Easy to extend for future API methods Committed-By-Agent: cursor * cleans messages * cleans up comments * Fixing issues with old architecture being enabled * Updates Stripe iOS SDK to 24.23.0 As a result, this fixes the following issue: “Problems collecting bank account payment method I was able to test the credit card payment method collection. But if I call the SDK with collectPaymentMethod("BankAccount", {}) it ends up showing me the credit card payment method collection as well.” And this also adapts to the latest performCheckout API changes in the native SDK, which throws errors instead of using a failure case on CheckoutResult, and also supports a cancellation result. * (iOS) Deduplicate internal code around checking initialized types * [Onramp] Fix destination network mismatch (#2089) * Fix wallet address network mismatch issue - Add network-specific default wallet addresses for all supported crypto networks - Auto-update wallet address when network selection changes - Prevent Ethereum addresses being used for Solana/Bitcoin/other networks - Add visual feedback showing current network format - Fix address format validation errors when switching networks Fixes: - Ethereum: 0x742d35... (EVM networks) - Solana: 9WzDXwBbmkg8... (base58) - Bitcoin: 1A1zP1eP... (base58 + version) - Stellar: GDQP2KPQGKI... (base32) - And more network-specific formats This resolves the reported issue where users selecting Solana network but using an Ethereum address format were getting validation errors. Committed-By-Agent: cursor * Fix onramp session destination network mismatch - Track wallet network selection (Solana, Ethereum, etc.) during registration - Map crypto networks to appropriate destination currencies (SOL, ETH, BTC, etc.) - Pass correct destinationNetwork and destinationCurrency to createOnrampSession - Add network-specific currency mapping for all supported networks - Display selected network in wallet status section Fixes the core issue where: - User registers Solana wallet address - But createOnrampSession used hardcoded 'ethereum' network + 'eth' currency - Causing validation/processing errors on the backend Now correctly maps: - Solana → sol currency, solana network - Bitcoin → btc currency, bitcoin network - Ethereum/EVM → eth currency, respective network - And all other supported networks This resolves the reported Solana/Ethereum destination mismatch error. Committed-By-Agent: cursor * Remove dangerous default values from createOnrampSession API - Remove default destinationNetwork, destinationCurrency, etc. from createOnrampSession - Make all parameters required to prevent accidental network/currency mismatches - Update convenience function to require all parameters explicitly - Add missing customerIpAddress parameter to CryptoOnrampScreen call - Update JSDoc to show examples instead of defaults This prevents future issues where: - Someone calls createOnrampSession without destinationCurrency - It defaults to 'eth' even for Solana/Bitcoin wallets - Causing the same network mismatch errors we just fixed Now callers MUST explicitly provide all values, making the API safer. Committed-By-Agent: cursor * Spotless * Revert "Spotless" This reverts commit 6c63dd2. * [Onramp] Adds `isAuthError` helper to SDK + sample `reAuth` error handler. (#2086) * handles errors * uses useOnramp * spotless * Merge branch 'lng/crypto-onramp-conditionally-load' into carlosmuvi/reauth-handling * Unduplicate code * Update CryptoOnrampScreen.tsx * Update CryptoOnrampScreen.tsx * Remove bad merge swift code * Reverts spotless. * moves error checker to onramp Committed-By-Agent: cursor --------- Co-authored-by: Twig <aharris.1990@gmail.com> * Onramp configuration for Expo (Android only) * conditional iOS config * mod podfile instead of using BuildProperties; add missing event * spotless * cleanup not implemented * cleanup OnrampSdkModule initialise * Standardizes binding-created error and cancellation text on iOS and Android; Consistently prefixes errors piped to example app with “:”. --------- Co-authored-by: Michael Liberatore <michael@lickability.net> Co-authored-by: Twig <aharris.1990@gmail.com> Co-authored-by: Carlos Muñoz <99293320+carlosmuvi-stripe@users.noreply.github.com> * logOut Android binding (#2098) * add update phone number example UX (#2100) * [Onramp] Bumps native versions (#2101) * Updates native SDK versions. * Remove Podfile.lock after attempting pod install with 24.23.1 Committed-By-Agent: cursor * [Onramp] Implements Remaining Bindings for StripeCryptoOnramp on iOS (#2103) * Updates native SDK versions. * Implements remaining bindings for StripeCryptoOnramp on iOS * updates podfile Committed-By-Agent: cursor * update phone number testing Committed-By-Agent: cursor --------- Co-authored-by: Carlos Munoz <carlosmuvi@stripe.com> Co-authored-by: Carlos Muñoz <99293320+carlosmuvi-stripe@users.noreply.github.com> * fix: add missing await to NativeStripeSdk.initialise calls (#2113) (#2116) The initialise method is async and returns a Promise, but it wasn't being awaited. This could cause race conditions where subsequent Stripe operations might be called before initialization completes. Changes: - Added await to initStripe function call to NativeStripeSdk.initialise - Wrapped useEffect initialization in async IIFE - Both Android and iOS initialization paths now properly await completion Co-authored-by: Mikhail <mveehkim@gmail.com> * Crypto Onramp Example Cleanup (#2106) * Add new FormField for input * Move UI into it's own sections * Move sections into their own folder * Move styles * create utils file * Move function into utils * Rename screen to flow * Remove verify screen * Move register screen * Fixes a build error * Move styles back to CryptoOnrampFlow * Crypto Onramp Example Refactoring (#2126) * Reduce payment collection code * Centralize alert showing logic * Move the status section to its own file, cleanup styles * [onramp] Configure with crypto customer ID (#2138) * don't recreate OnrampCoordinator * add cryptoCustomerId configuration param * Adds the cryptoCostumerId parameter to onramp coordinator creation * Update iOS SDK, fix typo * bump android 21.27.0 --------- Co-authored-by: Twig <aharris.1990@gmail.com> * Crypto Onramp Payment Display Data (#2132) * Initial implementation of returning display data * Allow bank account as well * Initial implementation on both platforms * Remove bankIconCode * update for latest android changes * Fills out more of the `paymentDisplayData` implementation on iOS * Update api to be promise based * Fix up to use result * Update CryptoOnrampFlow.tsx * Fix errors * Uses alternate method for getting card brand * Cleanup * Update Onramp.ts * Update StripeSdkImpl.swift * Rename function * Update typing information * Refactors iOS `getCryptoTokenDisplayData` to return dictionary synchronously * Fix compilation issue * Update RN apis and kotlin parsing * Updates iOS for new payment token dictionary structure * Update CryptoOnrampFlow.tsx * Fix pr comments * Re-implement promise API * Fix objc name * Update to latest iOS SDK version * Update iOS version * update android sdk to 21.27.0 * Fix formatting --------- Co-authored-by: Michael Liberatore <michael@lickability.net> * Revert "Use files instead of npmignore to cleanup npm package (#2081)" (#2099) This reverts commit 9b24cd8. * Update package.json (#2105) * Bump version number to 0.52.0-crypto-onramp-2-private-beta * fix current version * bump 0.52.0-crypto-onramp-2-private-beta.1 * Update NativeOnrampSdkModuleSpec.java (#2141) * bump 0.52.0-crypto-onramp-2-private-beta.2 * bump stripe-ios 24.24.1 (#2152) * Merge `master` Into Beta Branch (#2202) * Merge branch 'master' into 0.52.0-crypto-onramp-2-private-beta * Fix some @_spi imports * Fix placeholder function when not using onramp * CryptoOnramp: Minimal Migration to iOS SDK 25.0.0 (#2198) * Updates to iOS 25.0.0 SDK * Removes giropay references * Fixes migration of `paymentMethodTypes: [NSNumber]` to `paymentMethodTypes: [STPPaymentMethodType]` Release notes: > [Changed] STPPaymentIntent.paymentMethodTypes and STPSetupIntent.paymentMethodTypes now return [STPPaymentMethodType] instead of [NSNumber] in Swift for better ergonomics. * Migrates `authorizationResultHandler` which now accepts one parameter and returns async by using a continuation. * Merge branch 'master' into 0.52.0-crypto-onramp-2-private-beta * Fix some @_spi imports * Fix placeholder function when not using onramp --------- Co-authored-by: Twig <aharris.1990@gmail.com> * Merges `master` into Crypto Onramp Beta Branch (#2217) * Revert "Use files instead of npmignore to cleanup npm package (#2081)" (#2099) This reverts commit 9b24cd8. * Update package.json (#2105) * Re-enable FC tests on iOS by forcing native flow (#2104) * Re-enable FC tests on iOS by forcing native flow * Fix Android build * fix: add missing await to NativeStripeSdk.initialise calls (#2113) The initialise method is async and returns a Promise, but it wasn't being awaited. This could cause race conditions where subsequent Stripe operations might be called before initialization completes. Changes: - Added await to initStripe function call to NativeStripeSdk.initialise - Wrapped useEffect initialization in async IIFE - Both Android and iOS initialization paths now properly await completion * Parse link config for embedded (#2115) * Remove package-lock.json (#2110) * Use files instead of npmignore to cleanup npm package (#2109) * Revert "Revert "Use files instead of npmignore to cleanup npm package (#2081)" (#2099)" This reverts commit c8d2bb2. * Use npm publish * Improve android ci build performance (#2111) * Improve android ci build performance * Test * Update gradle action * Use gradle cache action for both * Improve apple pay docs (#2117) * Embedded invisible Android fix (#2118) * Try to fix layout issue * Update CHANGELOG.md * Add isLoaded (#2120) * Bump Android SDK version to 21.26.+ (#2124) * Bump Android SDK version to 21.26.+ * wip? * 0.53.0 (#2121) * Update CHANGELOG.md * v0.53.0 (#2127) * Fix iOS build on new arch 0.81 with static linkage (#2129) * Fix iOS build on new arch 0.81 with static linkage * Add changelog * Fix a potential bug in the stop method. (#2133) * Fix handling images with alpha (#2134) * Update CHANGELOG.md (#2135) * v0.53.1 (#2136) * Set up headless task when using StripeProvider (#2128) * Migrate CI to bitrise (#2137) * Migrate CI to bitrise * Update iOS test name --------- Co-authored-by: Nick Porter <88012362+porter-stripe@users.noreply.github.com> * feat: add Alma implementation (#2140) Co-authored-by: Bella Koch <160939932+amk-stripe@users.noreply.github.com> * Update CHANGELOG.md (#2149) * v0.54.0 (#2150) * Fix stripe ui errors when rotating screen (#2147) * Fix stripe ui errors when rotating screen * Fix format * 0.54.1 proposal (#2153) * v0.54.1 (#2154) * Add iOS patch info to README (#2102) * Add info about apply the patch to fix the iOS old architecture codegen issue * Update wording * update instructions to specify that issue is fixed with latest version * fix typo * Fix pods cache on CI (#2159) * Fix pods cache on CI * Test * Update CODEOWNERS (#2162) * Bump iOS version to ~> 24.24.0 (#2163) * Bump iOS version to ~> 24.24.0 * update pods * Add ability to applyLiquidGlass and update navigationBarStyle (#2165) * Add ability to applyLiquidGlass and update navigationBarStyle This reverts commit def71e55e0cea7e322333a4c47e4c1b3815c682d. * kick off ci * Revert "kick off ci" This reverts commit 9447677. * Add warning message to wave-atom affected releases (#2168) * allow `uk_` keys for customer ephemeral keys (#2169) * Propose 0.55.0 (#2175) * v0.55.0 (#2176) * Fix issue with missing metadata on FC events on Android (#2178) * Fix issue with missing metadata on FC events on Android * Add note in changelog * Add ConfirmationTokens API (#2166) * feat: Add confirmation token support for embedded payment element Implements confirmation token callbacks for the embedded payment element, allowing merchants to use confirmationTokenConfirmHandler as an alternative to the traditional confirmHandler flow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Committed-By-Agent: claude * Test iOS CT path * Update Android impl * Update embedded screen * Add embedded CT support * run code gen * Add import * Scroll to find button * Add notes about API * Fix race condition #2166 (comment) * fix mappers * lint * Revert "Fix race condition" This reverts commit ded8d94. --------- Co-authored-by: Claude <noreply@anthropic.com> * Add missing mappings for Link payment method type (#2179) * Add missing mappings for Link payment method type * Add note to changelog * Update CHANGELOG.md (#2184) * v0.55.1 (#2185) * Code gen update (#2151) * Fix border radius not being applied to Apple Pay button (#2189) * GA CTs and CS (#2188) * Fix patch releases not automatically being used from `stripe-android` (#2191) * Customersession for customersheet and OBO (#2192) * public api * update react native sdk version * backend changes * emitter layer * emission listener and callback spec * callback listener and emission caller * CustomerSheet w. CustomerSession Screen * uncomment OBO parsing * update iOS sdk version * fix confirmationTokenConfirmHandler * Update CHANGELOG.md * fix embedded-cpm e2e test wait until payment methods are loaded add padding so the e2e test can actually click complete payment * Handle lifecycle states better (#2200) * Handle lifecycle states better * Simplify fix * Simplify fix more * Update CHANGELOG.md (#2204) * v0.56.0 (#2206) * Remove fragments (#2174) * Remove fragments * Cleanup * Cleanup * More cleanup * Fix dynamicColorFromParams * Fix custom payment methods * Fix dynamicColorFromParams * Remove toBundle * Fix format * Cleanup * Remove Giropay (#2209) * Fix how we get root VC for scene based apps (#2216) * Use RCTKeyWindow rather than UIApplication window * Update CHANGELOG.md * Update iOS SDK to 25.0.0 and Android SDK to 22.0.0 (#2210) * Update iOS SDK to 25.0.0 * [TEMP] TODO DELETE THIS - make example prefer maven local * Update Android * update changelog * Revert "[TEMP] TODO DELETE THIS - make example prefer maven local" This reverts commit 66b9176. * lint android and make it part of the pre-commit * update with latest * update example pod * Add dev guide to claude md (#2215) * initial * Claude rewrites my initial guide * Updates root view controller access to match `master` * Fix android compilation --------- Co-authored-by: Nick Porter <88012362+porter-stripe@users.noreply.github.com> Co-authored-by: Till Hellmund <tillh@stripe.com> Co-authored-by: Mikhail <mveehkim@gmail.com> Co-authored-by: Janic Duplessis <janicduplessis@gmail.com> Co-authored-by: George Birch <gbirch@stripe.com> Co-authored-by: Tian Zhao <tianzhao@stripe.com> Co-authored-by: Jay Newstrom <jaynewstrom@stripe.com> Co-authored-by: rghirell <rghirell@student.42.fr> Co-authored-by: Bella Koch <160939932+amk-stripe@users.noreply.github.com> Co-authored-by: Samer Alabi <141707240+samer-stripe@users.noreply.github.com> Co-authored-by: charliecruzan-stripe <97612659+charliecruzan-stripe@users.noreply.github.com> Co-authored-by: John Woo <99628984+wooj-stripe@users.noreply.github.com> Co-authored-by: Mat Schmid <mats@stripe.com> Co-authored-by: guido-stripe <103590313+guido-stripe@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Andrew Harrison <Twigz@users.noreply.github.com> Co-authored-by: Yuki <yuki@stripe.com> Co-authored-by: Twig <aharris.1990@gmail.com> * CryptoOnramp: Seamless Sign-In (#2199) * Updates to iOS 25.0.0 SDK * Removes giropay references * Fixes migration of `paymentMethodTypes: [NSNumber]` to `paymentMethodTypes: [STPPaymentMethodType]` Release notes: > [Changed] STPPaymentIntent.paymentMethodTypes and STPSetupIntent.paymentMethodTypes now return [STPPaymentMethodType] instead of [NSNumber] in Swift for better ergonomics. * Migrates `authorizationResultHandler` which now accepts one parameter and returns async by using a continuation. * Adds RN implementation of `authenticateUserWithToken` * Adds iOS implementation for seamless sign-in * Adds sign up demo backend api * Adds login demo backend method * Migrates demo backend method /v1/auth/create * Adds createLinkAuthToken demo backend API * Adds saveUser demo backend API * Adds /v1 prefix to create_onramp_session and checkout (no other changes to these APIs) * Adds demo backend login/signup buttons and password field prior to checking link account * Calls the updated authorize method with the new token with LAI * Calls saveUser after authorization * Hides auth fields after successful auth * Removes the manual LAI authorization method * Progress on seamless sign-in logic * Minor clean up of state * Fixes syntax error in NativeOnrampSdkModule * installs RNCAsyncStorage via cocoapods * Better styling for seamless sign in label * Gets the customer id after seamless sign in * Disables buttons while seamlessly signing in * Removes hasSeamlessSignIn * Removes redundant label * Uses showError() instead of Alert.alert() * Shows loading state when signing up / logging in * Shows an alert so the user knows they need to register a link account before continuing. * Moves GetCryptoCustomerResponse * Removes a comment change * Adds dummy fallback binding for when onramp is not included * Android seamless sign in implementation * format checking * Updates documentation to match updated API review doc * Fixes missing massword from UserInfo * Fix android build error on old architecture * Fixes white password text and autocapitalization for password on Android * also turns off auto-caps on email field * Change to withContext --------- Co-authored-by: Twig <aharris.1990@gmail.com> * Updates Crypto Onramp Beta Branch from `master` (#2225) * Revert "Use files instead of npmignore to cleanup npm package (#2081)" (#2099) This reverts commit 9b24cd8. * Update package.json (#2105) * Re-enable FC tests on iOS by forcing native flow (#2104) * Re-enable FC tests on iOS by forcing native flow * Fix Android build * fix: add missing await to NativeStripeSdk.initialise calls (#2113) The initialise method is async and returns a Promise, but it wasn't being awaited. This could cause race conditions where subsequent Stripe operations might be called before initialization completes. Changes: - Added await to initStripe function call to NativeStripeSdk.initialise - Wrapped useEffect initialization in async IIFE - Both Android and iOS initialization paths now properly await completion * Parse link config for embedded (#2115) * Remove package-lock.json (#2110) * Use files instead of npmignore to cleanup npm package (#2109) * Revert "Revert "Use files instead of npmignore to cleanup npm package (#2081)" (#2099)" This reverts commit c8d2bb2. * Use npm publish * Improve android ci build performance (#2111) * Improve android ci build performance * Test * Update gradle action * Use gradle cache action for both * Improve apple pay docs (#2117) * Embedded invisible Android fix (#2118) * Try to fix layout issue * Update CHANGELOG.md * Add isLoaded (#2120) * Bump Android SDK version to 21.26.+ (#2124) * Bump Android SDK version to 21.26.+ * wip? * 0.53.0 (#2121) * Update CHANGELOG.md * v0.53.0 (#2127) * Fix iOS build on new arch 0.81 with static linkage (#2129) * Fix iOS build on new arch 0.81 with static linkage * Add changelog * Fix a potential bug in the stop method. (#2133) * Fix handling images with alpha (#2134) * Update CHANGELOG.md (#2135) * v0.53.1 (#2136) * Set up headless task when using StripeProvider (#2128) * Migrate CI to bitrise (#2137) * Migrate CI to bitrise * Update iOS test name --------- Co-authored-by: Nick Porter <88012362+porter-stripe@users.noreply.github.com> * feat: add Alma implementation (#2140) Co-authored-by: Bella Koch <160939932+amk-stripe@users.noreply.github.com> * Update CHANGELOG.md (#2149) * v0.54.0 (#2150) * Fix stripe ui errors when rotating screen (#2147) * Fix stripe ui errors when rotating screen * Fix format * 0.54.1 proposal (#2153) * v0.54.1 (#2154) * Add iOS patch info to README (#2102) * Add info about apply the patch to fix the iOS old architecture codegen issue * Update wording * update instructions to specify that issue is fixed with latest version * fix typo * Fix pods cache on CI (#2159) * Fix pods cache on CI * Test * Update CODEOWNERS (#2162) * Bump iOS version to ~> 24.24.0 (#2163) * Bump iOS version to ~> 24.24.0 * update pods * Add ability to applyLiquidGlass and update navigationBarStyle (#2165) * Add ability to applyLiquidGlass and update navigationBarStyle This reverts commit def71e55e0cea7e322333a4c47e4c1b3815c682d. * kick off ci * Revert "kick off ci" This reverts commit 9447677. * Add warning message to wave-atom affected releases (#2168) * allow `uk_` keys for customer ephemeral keys (#2169) * Propose 0.55.0 (#2175) * v0.55.0 (#2176) * Fix issue with missing metadata on FC events on Android (#2178) * Fix issue with missing metadata on FC events on Android * Add note in changelog * Add ConfirmationTokens API (#2166) * feat: Add confirmation token support for embedded payment element Implements confirmation token callbacks for the embedded payment element, allowing merchants to use confirmationTokenConfirmHandler as an alternative to the traditional confirmHandler flow. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com> Committed-By-Agent: claude * Test iOS CT path * Update Android impl * Update embedded screen * Add embedded CT support * run code gen * Add import * Scroll to find button * Add notes about API * Fix race condition #2166 (comment) * fix mappers * lint * Revert "Fix race condition" This reverts commit ded8d94. --------- Co-authored-by: Claude <noreply@anthropic.com> * Add missing mappings for Link payment method type (#2179) * Add missing mappings for Link payment method type * Add note to changelog * Update CHANGELOG.md (#2184) * v0.55.1 (#2185) * Code gen update (#2151) * Fix border radius not being applied to Apple Pay button (#2189) * GA CTs and CS (#2188) * Fix patch releases not automatically being used from `stripe-android` (#2191) * Customersession for customersheet and OBO (#2192) * public api * update react native sdk version * backend changes * emitter layer * emission listener and callback spec * callback listener and emission caller * CustomerSheet w. CustomerSession Screen * uncomment OBO parsing * update iOS sdk version * fix confirmationTokenConfirmHandler * Update CHANGELOG.md * fix embedded-cpm e2e test wait until payment methods are loaded add padding so the e2e test can actually click complete payment * Handle lifecycle states better (#2200) * Handle lifecycle states better * Simplify fix * Simplify fix more * Update CHANGELOG.md (#2204) * v0.56.0 (#2206) * Remove fragments (#2174) * Remove fragments * Cleanup * Cleanup * More cleanup * Fix dynamicColorFromParams * Fix custom payment methods * Fix dynamicColorFromParams * Remove toBundle * Fix format * Cleanup * Remove Giropay (#2209) * Fix how we get root VC for scene based apps (#2216) * Use RCTKeyWindow rather than UIApplication window * Update CHANGELOG.md * Update iOS SDK to 25.0.0 and Android SDK to 22.0.0 (#2210) * Update iOS SDK to 25.0.0 * [TEMP] TODO DELETE THIS - make example prefer maven local * Update Android * update changelog * Revert "[TEMP] TODO DELETE THIS - make example prefer maven local" This reverts commit 66b9176. * lint android and make it part of the pre-commit * update with latest * update example pod * Add dev guide to claude md (#2215) * initial * Claude rewrites my initial guide * Update CHANGELOG (#2218) * v0.57.0 (#2219) * Fix crash when not setting custom flag (#2220) * FIx crash * Update CHANGELOG.md * Refactor + unit tests paymentsheet and element (#2211) * Remove EPH key from CT screens (#2222) * Add more unit tests on Android (#2212) * Add more mappers tests * Add address view tests * Update EmbeddedPaymentElementView.kt * Update EmbeddedPaymentElementView.kt --------- Co-authored-by: Nick Porter <88012362+porter-stripe@users.noreply.github.com> Co-authored-by: Till Hellmund <tillh@stripe.com> Co-authored-by: Mikhail <mveehkim@gmail.com> Co-authored-by: Janic Duplessis <janicduplessis@gmail.com> Co-authored-by: George Birch <gbirch@stripe.com> Co-authored-by: Tian Zhao <tianzhao@stripe.com> Co-authored-by: Jay Newstrom <jaynewstrom@stripe.com> Co-authored-by: rghirell <rghirell@student.42.fr> Co-authored-by: Bella Koch <160939932+amk-stripe@users.noreply.github.com> Co-authored-by: Samer Alabi <141707240+samer-stripe@users.noreply.github.com> Co-authored-by: charliecruzan-stripe <97612659+charliecruzan-stripe@users.noreply.github.com> Co-authored-by: John Woo <99628984+wooj-stripe@users.noreply.github.com> Co-authored-by: Mat Schmid <mats@stripe.com> Co-authored-by: guido-stripe <103590313+guido-stripe@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Andrew Harrison <Twigz@users.noreply.github.com> Co-authored-by: Yuki <yuki@stripe.com> Co-authored-by: Twig <aharris.1990@gmail.com> * CryptoOnramp: KYC Refresh (#2207) * WIP on KYC Refresh * Adds resolve statuses * Adds temporary Podfile workaround to get latest `master` for iOS repo * Adds ts implementation * Update NativeOnrampSdkModule.ts * Implementation of verifyKYC on Android * WIP on collecting new KYC address * KYC Refresh demo UI * Removes Podfile override * Automatic linting * Reinstalls pods from non-overridden Podfile * Updates to use new method of getting the root view controller from `master` * Adds stub implementation for when onramp isn’t available * Fix compilation issue * Add missing spec method --------- Co-authored-by: Twig <aharris.1990@gmail.com> * StripeCryptoOnramp: Android SDK Update (#2226) * Fix latest android issues * Fix tests/appearance builders * bump android version * fix version * bump 0.52.0-crypto-onramp-2-private-beta.4 * Fix import * Accepts Swiftlint changes * Addresses additional linting errors caught by CI * Update currentActivity to be access through reactApplicationContext * Update ThreeDSecure.ts * Update package.json * Removes change to README * Removes `.npmignore` * Remove unnecessary lint suppression --------- Co-authored-by: Twig <aharris.1990@gmail.com> Co-authored-by: Larry Ng <lng@stripe.com> Co-authored-by: Mat Schmid <mats@stripe.com> Co-authored-by: lng-stripe <91862945+lng-stripe@users.noreply.github.com> Co-authored-by: Carlos Muñoz <99293320+carlosmuvi-stripe@users.noreply.github.com> Co-authored-by: Carlos Munoz <carlosmuvi@stripe.com> Co-authored-by: Mikhail <mveehkim@gmail.com> Co-authored-by: Andrew Harrison <Twigz@users.noreply.github.com> Co-authored-by: Nick Porter <88012362+porter-stripe@users.noreply.github.com> Co-authored-by: George Birch <gbirch@stripe.com> Co-authored-by: Till Hellmund <tillh@stripe.com> Co-authored-by: Janic Duplessis <janicduplessis@gmail.com> Co-authored-by: Tian Zhao <tianzhao@stripe.com> Co-authored-by: Jay Newstrom <jaynewstrom@stripe.com> Co-authored-by: rghirell <rghirell@student.42.fr> Co-authored-by: Bella Koch <160939932+amk-stripe@users.noreply.github.com> Co-authored-by: Samer Alabi <141707240+samer-stripe@users.noreply.github.com> Co-authored-by: charliecruzan-stripe <97612659+charliecruzan-stripe@users.noreply.github.com> Co-authored-by: John Woo <99628984+wooj-stripe@users.noreply.github.com> Co-authored-by: guido-stripe <103590313+guido-stripe@users.noreply.github.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Yuki <yuki@stripe.com>
Summary
When using RN with
use_frameworks! :linkage => :staticthe build fails with'react/utils/FollyConvert.h' file not found.The fix is based on a similar issue in RN mapbox, which handles backwards compatibility properly: rnmapbox/maps#3937.
Motivation
Fixes #2065
Testing
Documentation
Select one: