From 565efb79ba601046622570c1eacec3182d0d5e49 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Wed, 22 May 2024 13:14:37 -0700 Subject: [PATCH 01/17] release 12.9.0 --- CHANGELOG.md | 39 ++++++++++++++++++++++++++++ README.md | 1 + android/src/main/AndroidManifest.xml | 2 +- ios/RNLinksdk.mm | 2 +- package.json | 2 +- 5 files changed, 43 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dc5fc7a..e5d2f892 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,44 @@ # RELEASES +## LinkKit V12.0.0-beta.1 — 2024-05-22 + +### React Native + +#### Requirements + +This SDK now works with any supported version of React Native. + +### Android + +Android SDK [4.4.0](https://github.com/plaid/plaid-link-android/releases/tag/v4.4.0) + +#### Changes +- Support Autofill for SMS OTP in Link Sessions using Google play-services-auth-api-phone library version 18.0.2. +- Change LinkActivity to `exported=false`. + +#### Requirements + +| Name | Version | +|------|---------| +| Android Studio | 4.0+ | +| Kotlin | 1.8+ | + +### iOS + +iOS SDK [6.0.0-beta1](https://github.com/plaid/plaid-link-ios/releases/tag/6.0.0-beta1) + +#### Changes + +- Add support for FinanceKit and Apple card. + +#### Requirements + +| Name | Version | +|------|---------| +| Xcode | >= 15.3.0 | +| iOS | >= 14.0 | + + ## LinkKit V11.10.0 — 2024-05-22 ### React Native diff --git a/README.md b/README.md index 8a8214d0..d5b30608 100644 --- a/README.md +++ b/README.md @@ -179,6 +179,7 @@ While these older versions are expected to continue to work without disruption, | Plaid SDK Version | Min React Native Version | Android SDK | Android Min Version | Android Compile Version| iOS SDK | iOS Min Version | Status | |-------------------|--------------------------|-------------|---------------------|------------------------|---------|-----------------|-------------------------------| +| 12.0.0-beta.1 | * | [4.4.0+] | 21 | 34 | >=6.0.0 | 14.0 | Active, supports Xcode 15.3.0 | | 11.10.0 | * | [4.4.0+] | 21 | 34 | >=5.5.0 | 14.0 | Active, supports Xcode 15.0.1 | | 11.9.0 | * | [4.3.1+] | 21 | 34 | >=5.5.0 | 14.0 | Active, supports Xcode 15.0.1 | | 11.8.2 | * | [4.3.1+] | 21 | 34 | >=5.4.2 | 14.0 | Active, supports Xcode 15.0.1 | diff --git a/android/src/main/AndroidManifest.xml b/android/src/main/AndroidManifest.xml index abe175dd..d9c29301 100644 --- a/android/src/main/AndroidManifest.xml +++ b/android/src/main/AndroidManifest.xml @@ -4,7 +4,7 @@ + android:value="12.0.0" /> diff --git a/ios/RNLinksdk.mm b/ios/RNLinksdk.mm index 9d300d62..386a7810 100644 --- a/ios/RNLinksdk.mm +++ b/ios/RNLinksdk.mm @@ -28,7 +28,7 @@ @implementation RNLinksdk RCT_EXPORT_MODULE(); + (NSString*)sdkVersion { - return @"11.10.0"; // SDK_VERSION + return @"12.0.0"; // SDK_VERSION } + (NSString*)objCBridgeVersion { diff --git a/package.json b/package.json index aaeb5217..bc0ceeb7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-plaid-link-sdk", - "version": "11.10.0", + "version": "12.0.0-beta.1", "description": "React Native Plaid Link SDK", "main": "dist/index.js", "types": "dist/index.d.ts", From b77d60a8385c29d86ceb06e3aa5da6069482389f Mon Sep 17 00:00:00 2001 From: dtroupe Date: Wed, 22 May 2024 13:15:15 -0700 Subject: [PATCH 02/17] update iOS sdk to 6.0.0-beta1 --- react-native-plaid-link-sdk.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/react-native-plaid-link-sdk.podspec b/react-native-plaid-link-sdk.podspec index 1fdcab0e..141d2286 100644 --- a/react-native-plaid-link-sdk.podspec +++ b/react-native-plaid-link-sdk.podspec @@ -28,5 +28,5 @@ Pod::Spec.new do |s| end s.dependency 'React-Core' - s.dependency 'Plaid', '~> 5.5.0' + s.dependency 'Plaid', '~> 6.0.0-beta1' end From 2f4b75ddc4aa7aaa72a83b5672c21da2fd19ff3d Mon Sep 17 00:00:00 2001 From: dtroupe Date: Thu, 23 May 2024 11:18:44 -0700 Subject: [PATCH 03/17] typescript updates --- src/PlaidLink.tsx | 43 ++++++++++++++++++++++++++ src/Types.ts | 40 ++++++++++++++++++++++++ src/fabric/NativePlaidLinkModuleiOS.ts | 8 ++++- 3 files changed, 90 insertions(+), 1 deletion(-) diff --git a/src/PlaidLink.tsx b/src/PlaidLink.tsx index d84f0d29..4f72044a 100644 --- a/src/PlaidLink.tsx +++ b/src/PlaidLink.tsx @@ -11,6 +11,8 @@ import { LinkTokenConfiguration, PlaidLinkComponentProps, PlaidLinkProps, + FinanceKitErrorType, + FinanceKitError, } from './Types'; import RNLinksdkAndroid from './fabric/NativePlaidLinkModuleAndroid'; import RNLinksdkiOS from './fabric/NativePlaidLinkModuleiOS'; @@ -100,6 +102,47 @@ export const dismissLink = () => { } }; +/** + * Function to sync the user's transactions from their Apple card. + * + * @param {string} token - The `LinkToken` your server retrieved from the /link/token/create endpoint from the Plaid API. + * This token must be associated with an accessToken. + * @param {boolean} requestAuthorizationIfNeeded - Indicates if the user should be prompted to authorize the sync if + * they have not already done so. + * @param {function} completion - A callback function that is called when the sync has completed. + * + * @warning This method only works on iOS >= 17.4. + * @warning This method is not supported on Android or MacCatalyst. + * @warning This method can only be used once the user has granted access to their Apple card via a standard Link Session. + * @warning This method requires that your app has been granted FinanceKit access from Apple. + */ +export const syncFinanceKit = ( + token: string, + requestAuthorizationIfNeeded: boolean, + completion: (error?: FinanceKitError) => void +): void => { + if (Platform.OS === 'android') { + completion({ + type: FinanceKitErrorType.Unknown, + message: "FinanceKit is unavailable on Android!", + }) + } else { + RNLinksdkiOS?.syncFinanceKit( + token, + requestAuthorizationIfNeeded, + () => { + completion() + }, + (errorType: FinanceKitErrorType, message: string) => { + completion({ + type: errorType, + message: message, + }) + } + ) + } +}; + /** * @deprecated This component is deprecated. Create your own component and use the create & open methods. */ diff --git a/src/Types.ts b/src/Types.ts index 6949118b..92fcac87 100644 --- a/src/Types.ts +++ b/src/Types.ts @@ -557,3 +557,43 @@ export interface LinkOpenProps { export type PlaidLinkComponentProps = (PlaidLinkProps & { children: React.ReactNode }); + +export enum FinanceKitErrorType { + InvalidToken = "INVALID_TOKEN", + PermissionError = "PERMISSION_ERROR", + LinkApiError = "LINK_API_ERROR", + PermissionAccessError = "PERMISSION_ACCESS_ERROR", + Unknown = "UNKNOWN" +} + +interface InvalidTokenError { + type: FinanceKitErrorType.InvalidToken; + message: string; +} + +interface PermissionError { + type: FinanceKitErrorType.PermissionError; + message: string; +} + +interface LinkApiError { + type: FinanceKitErrorType.LinkApiError; + message: string; +} + +interface PermissionAccessError { + type: FinanceKitErrorType.PermissionAccessError; + message: string; +} + +interface UnknownError { + type: FinanceKitErrorType.Unknown; + message: string; +} + +export type FinanceKitError = + | InvalidTokenError + | PermissionError + | LinkApiError + | PermissionAccessError + | UnknownError; \ No newline at end of file diff --git a/src/fabric/NativePlaidLinkModuleiOS.ts b/src/fabric/NativePlaidLinkModuleiOS.ts index 86bf4016..b2d0bdce 100644 --- a/src/fabric/NativePlaidLinkModuleiOS.ts +++ b/src/fabric/NativePlaidLinkModuleiOS.ts @@ -3,7 +3,7 @@ import {TurboModuleRegistry, TurboModule} from 'react-native'; import {Int32} from 'react-native/Libraries/Types/CodegenTypes'; import {UnsafeObject} from './fabricUtils'; -import {LinkSuccess, LinkExit, LinkError} from '../Types'; +import {LinkSuccess, LinkExit, LinkError, FinanceKitErrorType} from '../Types'; export interface Spec extends TurboModule { create(token: string, noLoadingState: boolean): void; @@ -16,6 +16,12 @@ export interface Spec extends TurboModule { // those two are here for event emitter methods addListener(eventName: string): void; removeListeners(count: Int32): void; + syncFinanceKit( + token: string, + requestAuthorizationIfNeeded: boolean, + onSuccess: (success: void) => void, + onError: (error: FinanceKitErrorType, message: string) => void + ): void } export default TurboModuleRegistry.get('RNLinksdk'); From ebfc4d90f8a21c369453700dd92230c4b0f04676 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Thu, 23 May 2024 11:35:13 -0700 Subject: [PATCH 04/17] add sync financekit objective-c func --- ios/RNLinksdk.mm | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/ios/RNLinksdk.mm b/ios/RNLinksdk.mm index 386a7810..55ed5797 100644 --- a/ios/RNLinksdk.mm +++ b/ios/RNLinksdk.mm @@ -181,6 +181,10 @@ - (void)stopObserving { self.presentingViewController = nil; } +RCT_EXPORT_METHOD(syncFinanceKit: (NSString *)token onSuccess:(RCTResponseSenderBlock)onSuccess onError:(RCTResponseSenderBlock)onError) { + // qwe +} + #pragma mark - Bridging + (PLKEnvironment)environmentFromString:(NSString *)string { @@ -618,6 +622,8 @@ + (NSString *)stringForViewName:(PLKViewName *)viewName { return @"SELECT_SAVED_INSTITUTION"; case PLKViewNameValueSelectSavedAccount: return @"SELECT_SAVED_ACCOUNT"; + case PLKViewNameValueProfileDataReview: + return @"PROFILE_DATA_REVIEW"; } return @"unknown"; From ec11e2b0d03e832167f7936b35e3b460d199dd95 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Thu, 23 May 2024 15:22:33 -0700 Subject: [PATCH 05/17] financekit updates --- example/src/Screens/PlaidLinkScreen.tsx | 16 ++++++++++++++++ ios/RNLinksdk.mm | 22 ++++++++++++++++++++-- ios/RNPlaidHelper.h | 4 ++++ ios/RNPlaidHelper.m | 11 +++++++++++ src/Types.ts | 10 +++++----- 5 files changed, 56 insertions(+), 7 deletions(-) diff --git a/example/src/Screens/PlaidLinkScreen.tsx b/example/src/Screens/PlaidLinkScreen.tsx index a85c7a70..3c7db345 100644 --- a/example/src/Screens/PlaidLinkScreen.tsx +++ b/example/src/Screens/PlaidLinkScreen.tsx @@ -12,6 +12,8 @@ import { usePlaidEmitter, LinkIOSPresentationStyle, LinkTokenConfiguration, + syncFinanceKit, + FinanceKitError, } from 'react-native-plaid-link-sdk'; import {create, open} from 'react-native-plaid-link-sdk/dist/PlaidLink'; @@ -97,6 +99,20 @@ export function PlaidLinkScreen() { }}> Open Link + { + syncFinanceKit(text, false, (error?: FinanceKitError) => { + if (error) { + console.log('FinanceKit Error: ', error); + } else { + console.log('FinanceKit Sync Successful!'); + } + }); + }}> + Sync FinanceKit + ); } diff --git a/ios/RNLinksdk.mm b/ios/RNLinksdk.mm index 55ed5797..39b7c5e8 100644 --- a/ios/RNLinksdk.mm +++ b/ios/RNLinksdk.mm @@ -181,8 +181,26 @@ - (void)stopObserving { self.presentingViewController = nil; } -RCT_EXPORT_METHOD(syncFinanceKit: (NSString *)token onSuccess:(RCTResponseSenderBlock)onSuccess onError:(RCTResponseSenderBlock)onError) { - // qwe +RCT_EXPORT_METHOD(syncFinanceKit:(NSString *)token + requestAuthorizationIfNeeded:(BOOL)requestAuthorizationIfNeeded + onSuccess:(RCTResponseSenderBlock)onSuccess + onError:(RCTResponseSenderBlock)onError) { + + [RNPlaidHelper syncFinanceKit:token + requestAuthorizationIfNeeded:requestAuthorizationIfNeeded + onSuccess:^{ + onSuccess(@[]); + } + onError:^(NSError *error) { + + NSDictionary *financeKitError = @{ + @"type": [NSNumber numberWithInteger: error.code], + @"message": error.localizedDescription + }; + + onError(@[financeKitError]); + } + ]; } #pragma mark - Bridging diff --git a/ios/RNPlaidHelper.h b/ios/RNPlaidHelper.h index 535d3336..82aa7ab6 100644 --- a/ios/RNPlaidHelper.h +++ b/ios/RNPlaidHelper.h @@ -4,4 +4,8 @@ + (id _Nullable)createWithLinkTokenConfiguration:(PLKLinkTokenConfiguration * _Nonnull)linkTokenConfiguration error:(NSError * _Nullable * _Nullable)error; ++ (void) syncFinanceKit:(NSString *_Nonnull)token + requestAuthorizationIfNeeded:(BOOL)requestAuthorizationIfNeeded + onSuccess:(void (^_Nonnull)(void))onSuccess + onError:(void (^_Nonnull)(NSError * _Nonnull error))onError; @end diff --git a/ios/RNPlaidHelper.m b/ios/RNPlaidHelper.m index 2288299c..dc19513a 100644 --- a/ios/RNPlaidHelper.m +++ b/ios/RNPlaidHelper.m @@ -7,4 +7,15 @@ @implementation RNPlaidHelper return [PLKPlaid createWithLinkTokenConfiguration:linkTokenConfiguration error:error]; } ++ (void)syncFinanceKit:(NSString *)token requestAuthorizationIfNeeded:(BOOL)requestAuthorizationIfNeeded onSuccess:(void (^)(void))onSuccess onError:(void (^)(NSError * _Nonnull))onError { + if (@available(iOS 17.4, *)) { + [PLKPlaid syncFinanceKitWithToken:token requestAuthorizationIfNeeded:requestAuthorizationIfNeeded onSuccess:onSuccess onError:onError]; + } else { + NSError *error = [NSError errorWithDomain:@"com.plaid.financeKit" + code:1001 + userInfo:@{ NSLocalizedDescriptionKey: @"FinanceKit Requires iOS >= 17.4" }]; + onError(error); + } +} + @end diff --git a/src/Types.ts b/src/Types.ts index 92fcac87..2f207392 100644 --- a/src/Types.ts +++ b/src/Types.ts @@ -559,11 +559,11 @@ export type PlaidLinkComponentProps = (PlaidLinkProps & { }); export enum FinanceKitErrorType { - InvalidToken = "INVALID_TOKEN", - PermissionError = "PERMISSION_ERROR", - LinkApiError = "LINK_API_ERROR", - PermissionAccessError = "PERMISSION_ACCESS_ERROR", - Unknown = "UNKNOWN" + InvalidToken = 0, + PermissionError = 1, + LinkApiError = 2, + PermissionAccessError = 3, + Unknown = 4 } interface InvalidTokenError { From a94120597d6649cbd614792c15423a4b9a1ec7c3 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 24 May 2024 14:15:33 -0700 Subject: [PATCH 06/17] financekit --- src/PlaidLink.tsx | 6 +++--- src/fabric/NativePlaidLinkModuleiOS.ts | 4 ++-- src/index.ts | 4 +++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/PlaidLink.tsx b/src/PlaidLink.tsx index 4f72044a..73a5c849 100644 --- a/src/PlaidLink.tsx +++ b/src/PlaidLink.tsx @@ -133,10 +133,10 @@ export const syncFinanceKit = ( () => { completion() }, - (errorType: FinanceKitErrorType, message: string) => { + (error: FinanceKitError) => { completion({ - type: errorType, - message: message, + type: error.type, + message: error.message, }) } ) diff --git a/src/fabric/NativePlaidLinkModuleiOS.ts b/src/fabric/NativePlaidLinkModuleiOS.ts index b2d0bdce..82aa7711 100644 --- a/src/fabric/NativePlaidLinkModuleiOS.ts +++ b/src/fabric/NativePlaidLinkModuleiOS.ts @@ -3,7 +3,7 @@ import {TurboModuleRegistry, TurboModule} from 'react-native'; import {Int32} from 'react-native/Libraries/Types/CodegenTypes'; import {UnsafeObject} from './fabricUtils'; -import {LinkSuccess, LinkExit, LinkError, FinanceKitErrorType} from '../Types'; +import {LinkSuccess, LinkExit, LinkError, FinanceKitError} from '../Types'; export interface Spec extends TurboModule { create(token: string, noLoadingState: boolean): void; @@ -20,7 +20,7 @@ export interface Spec extends TurboModule { token: string, requestAuthorizationIfNeeded: boolean, onSuccess: (success: void) => void, - onError: (error: FinanceKitErrorType, message: string) => void + onError: (error: FinanceKitError) => void ): void } diff --git a/src/index.ts b/src/index.ts index 71f554ba..cc3f2fd3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,10 +1,11 @@ import { openLink, + PlaidLink, create, open, dismissLink, usePlaidEmitter, - PlaidLink, + syncFinanceKit, } from './PlaidLink'; export * from './Types'; @@ -18,6 +19,7 @@ export { open, dismissLink, usePlaidEmitter, + syncFinanceKit }; // Components From 0b2b0dace7989db9ce7ae4d4e2009a1bcf5b9265 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 24 May 2024 14:17:06 -0700 Subject: [PATCH 07/17] update example for financekit --- example/src/Screens/PlaidLinkScreen.tsx | 46 +++++++++++++++++++------ 1 file changed, 35 insertions(+), 11 deletions(-) diff --git a/example/src/Screens/PlaidLinkScreen.tsx b/example/src/Screens/PlaidLinkScreen.tsx index 3c7db345..6b7864f9 100644 --- a/example/src/Screens/PlaidLinkScreen.tsx +++ b/example/src/Screens/PlaidLinkScreen.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import {TextInput, Text, TouchableOpacity} from 'react-native'; +import {Platform, TextInput, Text, TouchableOpacity} from 'react-native'; import {styles} from '../Styles'; import { @@ -12,12 +12,12 @@ import { usePlaidEmitter, LinkIOSPresentationStyle, LinkTokenConfiguration, - syncFinanceKit, FinanceKitError, + create, + open, + syncFinanceKit, } from 'react-native-plaid-link-sdk'; -import {create, open} from 'react-native-plaid-link-sdk/dist/PlaidLink'; - function isValidString(str: string): boolean { if (str && str.trim() !== '') { return true; @@ -69,6 +69,29 @@ export function PlaidLinkScreen() { const [text, onChangeText] = React.useState(''); const [disabled, setDisabled] = React.useState(true); + const iOSVersionParts = String(Platform.Version).split('.'); + const [majorVersion, minorVersion, patchVersion] = + iOSVersionParts.length === 3 ? iOSVersionParts : [null, null, null]; + + const financeKitText = () => { + if (majorVersion && minorVersion) { + const majorInt = parseInt(majorVersion, 10); + const minorInt = parseInt(minorVersion, 10); + + if (majorInt > 17) { + return Sync FinanceKit; + } else if (majorInt === 17 && minorInt >= 4) { + return Sync FinanceKit; + } else { + return ( + + FinanceKit not supported on this version of iOS + + ); + } + } + }; + return ( <> Open Link { - syncFinanceKit(text, false, (error?: FinanceKitError) => { + const completionHandler = (error?: FinanceKitError) => { if (error) { - console.log('FinanceKit Error: ', error); + console.error('Error:', error); } else { - console.log('FinanceKit Sync Successful!'); + console.log('Sync completed successfully'); } - }); + }; + const requestAuthorizationIfNeeded = true; + syncFinanceKit(text, requestAuthorizationIfNeeded, completionHandler); }}> - Sync FinanceKit + {financeKitText()} ); From ec43a89a508b78277720b22dacb39239b06df584 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 24 May 2024 14:19:09 -0700 Subject: [PATCH 08/17] prep 12.0.0-beta.2 release --- CHANGELOG.md | 39 +++++++++++++++++++++++++++++++++++++++ README.md | 3 ++- package.json | 2 +- 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e5d2f892..d66de20a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,44 @@ # RELEASES +## LinkKit V12.0.0-beta.2 — 2024-05-24 + +### React Native + +#### Requirements + +This SDK now works with any supported version of React Native. + +### Android + +Android SDK [4.4.0](https://github.com/plaid/plaid-link-android/releases/tag/v4.4.0) + +#### Changes +- Support Autofill for SMS OTP in Link Sessions using Google play-services-auth-api-phone library version 18.0.2. +- Change LinkActivity to `exported=false`. + +#### Requirements + +| Name | Version | +|------|---------| +| Android Studio | 4.0+ | +| Kotlin | 1.8+ | + +### iOS + +iOS SDK [6.0.0-beta2](https://github.com/plaid/plaid-link-ios/releases/tag/6.0.0-beta2) + +#### Changes + +- Add Objective-C FinanceKit APIs for React Native. +- Add support for FinanceKit and Apple card. + +#### Requirements + +| Name | Version | +|------|---------| +| Xcode | >= 15.3.0 | +| iOS | >= 14.0 | + ## LinkKit V12.0.0-beta.1 — 2024-05-22 ### React Native diff --git a/README.md b/README.md index d5b30608..c3c76d95 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,8 @@ While these older versions are expected to continue to work without disruption, | Plaid SDK Version | Min React Native Version | Android SDK | Android Min Version | Android Compile Version| iOS SDK | iOS Min Version | Status | |-------------------|--------------------------|-------------|---------------------|------------------------|---------|-----------------|-------------------------------| -| 12.0.0-beta.1 | * | [4.4.0+] | 21 | 34 | >=6.0.0 | 14.0 | Active, supports Xcode 15.3.0 | +| 12.0.0-beta.2 | * | [4.4.0+] | 21 | 34 | >=6.0.0 | 14.0 | Active, supports Xcode 15.3.0 | +| 12.0.0-beta.1 | * | [4.4.0+] | 21 | 34 | >=6.0.0 | 14.0 | **Deprecated** | | 11.10.0 | * | [4.4.0+] | 21 | 34 | >=5.5.0 | 14.0 | Active, supports Xcode 15.0.1 | | 11.9.0 | * | [4.3.1+] | 21 | 34 | >=5.5.0 | 14.0 | Active, supports Xcode 15.0.1 | | 11.8.2 | * | [4.3.1+] | 21 | 34 | >=5.4.2 | 14.0 | Active, supports Xcode 15.0.1 | diff --git a/package.json b/package.json index bc0ceeb7..dcc74486 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-plaid-link-sdk", - "version": "12.0.0-beta.1", + "version": "12.0.0-beta.2", "description": "React Native Plaid Link SDK", "main": "dist/index.js", "types": "dist/index.d.ts", From c0eeee4b3c31368961cb2f3995f0e064f28354ef Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 24 May 2024 14:19:39 -0700 Subject: [PATCH 09/17] update ios sdk to 6.0.0-beta2 --- react-native-plaid-link-sdk.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/react-native-plaid-link-sdk.podspec b/react-native-plaid-link-sdk.podspec index 141d2286..9491952f 100644 --- a/react-native-plaid-link-sdk.podspec +++ b/react-native-plaid-link-sdk.podspec @@ -28,5 +28,5 @@ Pod::Spec.new do |s| end s.dependency 'React-Core' - s.dependency 'Plaid', '~> 6.0.0-beta1' + s.dependency 'Plaid', '~> 6.0.0-beta2' end From f36c70b737382808df80d929d044c37c4594b8b2 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 24 May 2024 18:41:12 -0700 Subject: [PATCH 10/17] update ios sdk --- react-native-plaid-link-sdk.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/react-native-plaid-link-sdk.podspec b/react-native-plaid-link-sdk.podspec index 9491952f..43ca9855 100644 --- a/react-native-plaid-link-sdk.podspec +++ b/react-native-plaid-link-sdk.podspec @@ -28,5 +28,5 @@ Pod::Spec.new do |s| end s.dependency 'React-Core' - s.dependency 'Plaid', '~> 6.0.0-beta2' + s.dependency 'Plaid', '~> 6.0.0-beta3' end From 4be9c7f96ff5fce1e897c5939b462d9291af688d Mon Sep 17 00:00:00 2001 From: dtroupe Date: Tue, 6 Aug 2024 16:35:31 -0700 Subject: [PATCH 11/17] 12.0.0-beta.3 --- CHANGELOG.md | 40 +++++++++++++++++++++++++++++ README.md | 3 ++- package.json | 2 +- react-native-plaid-link-sdk.podspec | 2 +- 4 files changed, 44 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d66de20a..a4c4a441 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,45 @@ # RELEASES +## LinkKit V12.0.0-beta.3 — 2024-08-06 + +### React Native + +#### Requirements + +This SDK now works with any supported version of React Native. + +### Android + +Android SDK [4.4.0](https://github.com/plaid/plaid-link-android/releases/tag/v4.4.0) + +#### Changes +- Support Autofill for SMS OTP in Link Sessions using Google play-services-auth-api-phone library version 18.0.2. +- Change LinkActivity to `exported=false`. + +#### Requirements + +| Name | Version | +|------|---------| +| Android Studio | 4.0+ | +| Kotlin | 1.8+ | + +### iOS + +iOS SDK [6.0.0-beta5](https://github.com/plaid/plaid-link-ios/releases/tag/6.0.0-beta5) + +#### Changes + +- Resolves bug where large transaction syncs failed. +- Resolves bug where large account balance extraction failed. + +#### Requirements + +| Name | Version | +|------|---------| +| Xcode | >= 15.3.0 | +| iOS | >= 14.0 | + + ## LinkKit V12.0.0-beta.2 — 2024-05-24 ### React Native diff --git a/README.md b/README.md index c3c76d95..9290ef28 100644 --- a/README.md +++ b/README.md @@ -179,8 +179,9 @@ While these older versions are expected to continue to work without disruption, | Plaid SDK Version | Min React Native Version | Android SDK | Android Min Version | Android Compile Version| iOS SDK | iOS Min Version | Status | |-------------------|--------------------------|-------------|---------------------|------------------------|---------|-----------------|-------------------------------| +| 12.0.0-beta.3 | * | [4.4.0+] | 21 | 34 | >=6.0.0 | 14.0 | Active, supports Xcode 15.3.0 | | 12.0.0-beta.2 | * | [4.4.0+] | 21 | 34 | >=6.0.0 | 14.0 | Active, supports Xcode 15.3.0 | -| 12.0.0-beta.1 | * | [4.4.0+] | 21 | 34 | >=6.0.0 | 14.0 | **Deprecated** | +| 12.0.0-beta.1 | * | [4.4.0+] | 21 | 34 | >=6.0.0 | 14.0 | **Deprecated** | | 11.10.0 | * | [4.4.0+] | 21 | 34 | >=5.5.0 | 14.0 | Active, supports Xcode 15.0.1 | | 11.9.0 | * | [4.3.1+] | 21 | 34 | >=5.5.0 | 14.0 | Active, supports Xcode 15.0.1 | | 11.8.2 | * | [4.3.1+] | 21 | 34 | >=5.4.2 | 14.0 | Active, supports Xcode 15.0.1 | diff --git a/package.json b/package.json index dcc74486..35724946 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-native-plaid-link-sdk", - "version": "12.0.0-beta.2", + "version": "12.0.0-beta.3", "description": "React Native Plaid Link SDK", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/react-native-plaid-link-sdk.podspec b/react-native-plaid-link-sdk.podspec index 43ca9855..3383b9fc 100644 --- a/react-native-plaid-link-sdk.podspec +++ b/react-native-plaid-link-sdk.podspec @@ -28,5 +28,5 @@ Pod::Spec.new do |s| end s.dependency 'React-Core' - s.dependency 'Plaid', '~> 6.0.0-beta3' + s.dependency 'Plaid', '~> 6.0.0-beta5' end From e9cb59d77bc4b823cd6f3e21075c983d85938a62 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Thu, 14 Nov 2024 12:52:52 -0800 Subject: [PATCH 12/17] require react native >= 68 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 35724946..5d7dc636 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "license": "MIT", "peerDependencies": { "react": "*", - "react-native": "*" + "react-native": ">=0.68.0" }, "devDependencies": { "@react-native-community/eslint-plugin": "^1.1.0", From ef93ff70be724ae5388280ae782c29c41e39dcd7 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 15 Nov 2024 11:38:42 -0800 Subject: [PATCH 13/17] fix finance kit button logic --- example/src/Screens/PlaidLinkScreen.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/example/src/Screens/PlaidLinkScreen.tsx b/example/src/Screens/PlaidLinkScreen.tsx index 6b7864f9..043926b6 100644 --- a/example/src/Screens/PlaidLinkScreen.tsx +++ b/example/src/Screens/PlaidLinkScreen.tsx @@ -70,8 +70,8 @@ export function PlaidLinkScreen() { const [disabled, setDisabled] = React.useState(true); const iOSVersionParts = String(Platform.Version).split('.'); - const [majorVersion, minorVersion, patchVersion] = - iOSVersionParts.length === 3 ? iOSVersionParts : [null, null, null]; + const [majorVersion, minorVersion] = + iOSVersionParts.length >= 2 ? iOSVersionParts : [null, null]; const financeKitText = () => { if (majorVersion && minorVersion) { @@ -89,6 +89,9 @@ export function PlaidLinkScreen() { ); } + } else { + // Fallback return if majorVersion or minorVersion are not provided. + return Invalid iOS version; } }; From de68b2f2f8e6183d02c31430c0de4d1eb2d0c741 Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 15 Nov 2024 11:39:51 -0800 Subject: [PATCH 14/17] deleted unused ios project files --- ios/RNLinksdk.xcodeproj/project.pbxproj | 300 ------------------ .../contents.xcworkspacedata | 10 - .../xcshareddata/IDEWorkspaceChecks.plist | 8 - 3 files changed, 318 deletions(-) delete mode 100644 ios/RNLinksdk.xcodeproj/project.pbxproj delete mode 100644 ios/RNLinksdk.xcworkspace/contents.xcworkspacedata delete mode 100644 ios/RNLinksdk.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/ios/RNLinksdk.xcodeproj/project.pbxproj b/ios/RNLinksdk.xcodeproj/project.pbxproj deleted file mode 100644 index 3acbd92e..00000000 --- a/ios/RNLinksdk.xcodeproj/project.pbxproj +++ /dev/null @@ -1,300 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 7C18CC3F2BED4A1C00EE4F18 /* PLKEmbeddedViewComponentView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C18CC3A2BED4A1C00EE4F18 /* PLKEmbeddedViewComponentView.mm */; }; - 7C18CC402BED4A1C00EE4F18 /* RNLinksdk.mm in Sources */ = {isa = PBXBuildFile; fileRef = 7C18CC3D2BED4A1C00EE4F18 /* RNLinksdk.mm */; }; - 7C18CC412BED4A1C00EE4F18 /* RNPlaidHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 7C18CC3E2BED4A1C00EE4F18 /* RNPlaidHelper.m */; }; - 7CE0C74E2A8854CE003941EB /* PLKEmbeddedView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CE0C74D2A8854CE003941EB /* PLKEmbeddedView.swift */; }; - 7CE0C7502A8854D8003941EB /* PLKEmbeddedView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CE0C74F2A8854D8003941EB /* PLKEmbeddedView.m */; }; - 7CE0C7542A8862A2003941EB /* PLKEmbeddedViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7CE0C7532A8862A2003941EB /* PLKEmbeddedViewManager.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 58B511D91A9E6C8500147676 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 134814201AA4EA6300B7C361 /* libRNLinksdk.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libRNLinksdk.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 7C18CC382BED4A1C00EE4F18 /* RNPlaidHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNPlaidHelper.h; sourceTree = ""; }; - 7C18CC392BED4A1C00EE4F18 /* react_native_plaid_link_sdk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = react_native_plaid_link_sdk.h; sourceTree = ""; }; - 7C18CC3A2BED4A1C00EE4F18 /* PLKEmbeddedViewComponentView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = PLKEmbeddedViewComponentView.mm; sourceTree = ""; }; - 7C18CC3B2BED4A1C00EE4F18 /* PLKFabricHelpers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PLKFabricHelpers.h; sourceTree = ""; }; - 7C18CC3C2BED4A1C00EE4F18 /* PLKEmbeddedViewComponentView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PLKEmbeddedViewComponentView.h; sourceTree = ""; }; - 7C18CC3D2BED4A1C00EE4F18 /* RNLinksdk.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RNLinksdk.mm; sourceTree = ""; }; - 7C18CC3E2BED4A1C00EE4F18 /* RNPlaidHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RNPlaidHelper.m; sourceTree = ""; }; - 7CE0C74C2A8854CE003941EB /* RNLinksdk-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "RNLinksdk-Bridging-Header.h"; sourceTree = ""; }; - 7CE0C74D2A8854CE003941EB /* PLKEmbeddedView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PLKEmbeddedView.swift; sourceTree = ""; }; - 7CE0C74F2A8854D8003941EB /* PLKEmbeddedView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PLKEmbeddedView.m; sourceTree = ""; }; - 7CE0C7532A8862A2003941EB /* PLKEmbeddedViewManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PLKEmbeddedViewManager.swift; sourceTree = ""; }; - B3E7B5881CC2AC0600A0062D /* RNLinksdk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RNLinksdk.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 58B511D81A9E6C8500147676 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 134814211AA4EA7D00B7C361 /* Products */ = { - isa = PBXGroup; - children = ( - 134814201AA4EA6300B7C361 /* libRNLinksdk.a */, - ); - name = Products; - sourceTree = ""; - }; - 58B511D21A9E6C8500147676 = { - isa = PBXGroup; - children = ( - 7CE0C74F2A8854D8003941EB /* PLKEmbeddedView.m */, - 7CE0C74D2A8854CE003941EB /* PLKEmbeddedView.swift */, - 7CE0C7532A8862A2003941EB /* PLKEmbeddedViewManager.swift */, - B3E7B5881CC2AC0600A0062D /* RNLinksdk.h */, - 7C18CC3C2BED4A1C00EE4F18 /* PLKEmbeddedViewComponentView.h */, - 7C18CC3A2BED4A1C00EE4F18 /* PLKEmbeddedViewComponentView.mm */, - 7C18CC3B2BED4A1C00EE4F18 /* PLKFabricHelpers.h */, - 7C18CC392BED4A1C00EE4F18 /* react_native_plaid_link_sdk.h */, - 7C18CC3D2BED4A1C00EE4F18 /* RNLinksdk.mm */, - 7C18CC382BED4A1C00EE4F18 /* RNPlaidHelper.h */, - 7C18CC3E2BED4A1C00EE4F18 /* RNPlaidHelper.m */, - 134814211AA4EA7D00B7C361 /* Products */, - 7CE0C74C2A8854CE003941EB /* RNLinksdk-Bridging-Header.h */, - ); - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 58B511DA1A9E6C8500147676 /* RNLinksdk */ = { - isa = PBXNativeTarget; - buildConfigurationList = 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RNLinksdk" */; - buildPhases = ( - 58B511D71A9E6C8500147676 /* Sources */, - 58B511D81A9E6C8500147676 /* Frameworks */, - 58B511D91A9E6C8500147676 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = RNLinksdk; - productName = RCTDataManager; - productReference = 134814201AA4EA6300B7C361 /* libRNLinksdk.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 58B511D31A9E6C8500147676 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0830; - ORGANIZATIONNAME = Facebook; - TargetAttributes = { - 58B511DA1A9E6C8500147676 = { - CreatedOnToolsVersion = 6.1.1; - LastSwiftMigration = 1430; - }; - }; - }; - buildConfigurationList = 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RNLinksdk" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - English, - en, - ); - mainGroup = 58B511D21A9E6C8500147676; - productRefGroup = 58B511D21A9E6C8500147676; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 58B511DA1A9E6C8500147676 /* RNLinksdk */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 58B511D71A9E6C8500147676 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7CE0C7502A8854D8003941EB /* PLKEmbeddedView.m in Sources */, - 7C18CC412BED4A1C00EE4F18 /* RNPlaidHelper.m in Sources */, - 7CE0C7542A8862A2003941EB /* PLKEmbeddedViewManager.swift in Sources */, - 7CE0C74E2A8854CE003941EB /* PLKEmbeddedView.swift in Sources */, - 7C18CC402BED4A1C00EE4F18 /* RNLinksdk.mm in Sources */, - 7C18CC3F2BED4A1C00EE4F18 /* PLKEmbeddedViewComponentView.mm in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 58B511ED1A9E6C8500147676 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 58B511EE1A9E6C8500147676 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 58B511F01A9E6C8500147676 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - DEFINES_MODULE = NO; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(SRCROOT)/../../../React/**", - "$(SRCROOT)/../../react-native/React/**", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = RNLinksdk; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "RNLinksdk-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 58B511F11A9E6C8500147676 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ENABLE_MODULES = YES; - DEFINES_MODULE = NO; - HEADER_SEARCH_PATHS = ( - "$(inherited)", - /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include, - "$(SRCROOT)/../../../React/**", - "$(SRCROOT)/../../react-native/React/**", - ); - LIBRARY_SEARCH_PATHS = "$(inherited)"; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = RNLinksdk; - SKIP_INSTALL = YES; - SWIFT_OBJC_BRIDGING_HEADER = "RNLinksdk-Bridging-Header.h"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 58B511D61A9E6C8500147676 /* Build configuration list for PBXProject "RNLinksdk" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 58B511ED1A9E6C8500147676 /* Debug */, - 58B511EE1A9E6C8500147676 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 58B511EF1A9E6C8500147676 /* Build configuration list for PBXNativeTarget "RNLinksdk" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 58B511F01A9E6C8500147676 /* Debug */, - 58B511F11A9E6C8500147676 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 58B511D31A9E6C8500147676 /* Project object */; -} diff --git a/ios/RNLinksdk.xcworkspace/contents.xcworkspacedata b/ios/RNLinksdk.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index ca1cd4ef..00000000 --- a/ios/RNLinksdk.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/ios/RNLinksdk.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/RNLinksdk.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d98100..00000000 --- a/ios/RNLinksdk.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - From 44c863ce36054677caab9d25ac62cfbab7aa747f Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 15 Nov 2024 11:52:04 -0800 Subject: [PATCH 15/17] add comments --- ios/PLKEmbeddedViewComponentView.h | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/ios/PLKEmbeddedViewComponentView.h b/ios/PLKEmbeddedViewComponentView.h index defc1b53..9cf089aa 100644 --- a/ios/PLKEmbeddedViewComponentView.h +++ b/ios/PLKEmbeddedViewComponentView.h @@ -1,12 +1,25 @@ #ifdef RCT_NEW_ARCH_ENABLED #import - #import #import NS_ASSUME_NONNULL_BEGIN +/** + * This file is required for compatibility with React Native's New Architecture (Fabric Renderer). + * + * - PLKEmbeddedViewComponentView extends `RCTViewComponentView` to define a custom native view + * that works with the Fabric rendering system, improving UI performance and concurrency. + * - The `#ifdef RCT_NEW_ARCH_ENABLED` directive ensures this code is only compiled when the + * New Architecture is enabled, avoiding compatibility issues with older architectures. + * - Custom native views like this are essential when integrating UIKit-based components into + * React Native apps under the New Architecture. + * - `RCTUIManager` handles the interaction between the native view and the React Native bridge, + * enabling updates and commands from the JavaScript side. + * + * Ref - https://github.com/reactwg/react-native-new-architecture/blob/main/docs/backwards-compat-turbo-modules.md + */ @interface PLKEmbeddedViewComponentView : RCTViewComponentView @end From 013c72e25db0586730cbf73274659666ee36bd6a Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 15 Nov 2024 11:55:18 -0800 Subject: [PATCH 16/17] clean up --- ios/RNLinksdk-Bridging-Header.h | 2 -- ios/RNLinksdk.h | 10 ++-------- package.json | 2 +- react-native-plaid-link-sdk.podspec | 2 +- 4 files changed, 4 insertions(+), 12 deletions(-) diff --git a/ios/RNLinksdk-Bridging-Header.h b/ios/RNLinksdk-Bridging-Header.h index 45d7beea..f25827bd 100644 --- a/ios/RNLinksdk-Bridging-Header.h +++ b/ios/RNLinksdk-Bridging-Header.h @@ -4,5 +4,3 @@ #import #import #import - -#import "RNLinksdk.h" diff --git a/ios/RNLinksdk.h b/ios/RNLinksdk.h index 035b91ce..6c4b2010 100644 --- a/ios/RNLinksdk.h +++ b/ios/RNLinksdk.h @@ -4,16 +4,10 @@ #import #import "RCTEventEmitter.h" -#import - @interface RNLinksdk : RCTEventEmitter #ifdef RCT_NEW_ARCH_ENABLED - + #else - + #endif - -+ (NSDictionary *)dictionaryFromSuccess:(PLKLinkSuccess *)success; -+ (NSDictionary *)dictionaryFromEvent:(PLKLinkEvent *)event; -+ (NSDictionary *)dictionaryFromExit:(PLKLinkExit *)exit; @end diff --git a/package.json b/package.json index 5d7dc636..35724946 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "license": "MIT", "peerDependencies": { "react": "*", - "react-native": ">=0.68.0" + "react-native": "*" }, "devDependencies": { "@react-native-community/eslint-plugin": "^1.1.0", diff --git a/react-native-plaid-link-sdk.podspec b/react-native-plaid-link-sdk.podspec index 3383b9fc..d32fae46 100644 --- a/react-native-plaid-link-sdk.podspec +++ b/react-native-plaid-link-sdk.podspec @@ -28,5 +28,5 @@ Pod::Spec.new do |s| end s.dependency 'React-Core' - s.dependency 'Plaid', '~> 6.0.0-beta5' + s.dependency 'Plaid', '~> 6.0.0' end From f41cc8b342bab7248eebf857822b18a186f48f2e Mon Sep 17 00:00:00 2001 From: dtroupe Date: Fri, 15 Nov 2024 11:56:10 -0800 Subject: [PATCH 17/17] revert changes --- ios/RNLinksdk-Bridging-Header.h | 2 ++ ios/RNLinksdk.h | 10 ++++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ios/RNLinksdk-Bridging-Header.h b/ios/RNLinksdk-Bridging-Header.h index f25827bd..45d7beea 100644 --- a/ios/RNLinksdk-Bridging-Header.h +++ b/ios/RNLinksdk-Bridging-Header.h @@ -4,3 +4,5 @@ #import #import #import + +#import "RNLinksdk.h" diff --git a/ios/RNLinksdk.h b/ios/RNLinksdk.h index 6c4b2010..035b91ce 100644 --- a/ios/RNLinksdk.h +++ b/ios/RNLinksdk.h @@ -4,10 +4,16 @@ #import #import "RCTEventEmitter.h" +#import + @interface RNLinksdk : RCTEventEmitter #ifdef RCT_NEW_ARCH_ENABLED - + #else - + #endif + ++ (NSDictionary *)dictionaryFromSuccess:(PLKLinkSuccess *)success; ++ (NSDictionary *)dictionaryFromEvent:(PLKLinkEvent *)event; ++ (NSDictionary *)dictionaryFromExit:(PLKLinkExit *)exit; @end