Skip to content

Update React Native quickstart to Plaid SDK v13 and patch dependency vulnerabilities#50

Open
phoenixy1 wants to merge 1 commit into
mainfrom
adh-update-rn-7
Open

Update React Native quickstart to Plaid SDK v13 and patch dependency vulnerabilities#50
phoenixy1 wants to merge 1 commit into
mainfrom
adh-update-rn-7

Conversation

@phoenixy1

@phoenixy1 phoenixy1 commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

Updates the React Native quickstart to the latest Plaid SDKs and clears every dependency vulnerability (npm, Ruby, and native native SDKs — 0 remaining).

  • react-native-plaid-link-sdk 12.8.0 → 13.0.2 and the server plaid client 42.2.0 → 43.0.0.
  • SDK v13 was re-architected onto Expo Modules, so the bare RN 0.85 app is migrated with install-expo-modules plus the fixes that migration requires: a Swift AppDelegate (SDK 56 removed the ObjC EXAppDelegateWrapper, and ExpoReactNativeFactory needs a Swift delegate), a repaired settings.gradle, and iOS React core built from source to sidestep a prebuilt-core/Expo RCTRootViewFactory header collision.
  • HomeScreen is rewritten for the v13 createPlaidLinkSession / session.open() API.
  • Behavior change worth flagging: minimum OS rises to Android 8.0 (minSdk 24→26, required by Plaid Android SDK 6.0.0) and iOS 16.4 (required by Expo SDK 56).

Verified end-to-end on both an iOS simulator and an Android emulator: create_link_token → Plaid Link opens natively (iOS LinkKit 7.0.1 / Android sdk-core 6.0.0) → select institution + OAuth → public-token exchange → account balance rendered on the Success screen.

Full change list

Security (0 vulnerabilities across all ecosystems):

  • npm: uuid override >=11.1.1 (Expo build-tool chain advisory).
  • Ruby/CocoaPods: concurrent-ruby 1.3.6→1.3.7, json 2.19.5→2.20.0.

Expo Modules migration fixes:

  • android/settings.gradle: repaired a malformed line the codemod produced.
  • android/build.gradle: minSdkVersion 24→26.
  • ios/AppDelegate.swift: new Swift AppDelegate (replaces ObjC AppDelegate.h/.mm + main.m); imports use internal import to match the generated ExpoModulesProvider.swift.
  • ios/Podfile: ENV['RCT_USE_PREBUILT_RNCORE'] = '0' to build React core from source.
  • package.json: added expo, @expo/cli (so release bundling resolves it), babel-preset-expo, jest-expo; jest preset switched to jest-expo and the render test now passes.

Testing/robustness:

  • "Open Link" button disabled until the link token loads; session open wrapped in error handling.

…abilities

Bumps react-native-plaid-link-sdk 12.8.0->13.0.2 and the server `plaid`
client 42.2.0->43.0.0, and resolves every npm/Ruby/native advisory in the
app (0 vulnerabilities remaining).

SDK v13 was re-architected onto Expo Modules, so the bare RN 0.85 app is
migrated via install-expo-modules plus the hand-fixes that migration needs:
a Swift AppDelegate (SDK 56 removed the ObjC EXAppDelegateWrapper, and
ExpoReactNativeFactory requires a Swift delegate), a repaired settings.gradle,
minSdk 24->26 (required by Plaid Android SDK 6.0.0), iOS React core built from
source to avoid the prebuilt-core/Expo RCTRootViewFactory header collision,
and @expo/cli declared so release bundling can resolve it. HomeScreen is
rewritten for the v13 createPlaidLinkSession/session.open API.

Verified end-to-end on the iOS simulator: create_link_token -> LinkKit 7.0.1
-> institution + OAuth -> public-token exchange -> balance rendered.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@phoenixy1 phoenixy1 marked this pull request as ready for review July 11, 2026 00:15
@phoenixy1 phoenixy1 requested a review from dtroupe-plaid July 11, 2026 00:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant