Migration Guide

Migration to 9.0.0

  • RN SDK is now delivered in multiple versions:
    9.0.0: Standard version
    9.0.0-vc: Includes streaming
    9.0.0-e2ee: Includes end-to-end encryption
  • Remove Android com.incode.sdk:core-light dependency in your app's build.gradle:
    dependencies { implementation 'com.incode.sdk:core-light:2.6.4' }
  • Add these lines to the Podfile:
    source 'https://cdn.cocoapods.org/'
    source '[[email protected]](<>):Incode-Technologies-Example-Repos/IncdDistributionPodspecs.git'
    If you don't have access to the Incode's GitHub repo and SSH setup on the machine, please contact your Incode representative for support.
  • For Expo integrations minimum 1.1.2 expo configuration plugin is required:
    "@incode-sdks/expo-incode-sdk-configuration": "1.1.2"

*Only for Expo integrations - Update app.json and remove coreLightVersionparam.

Migration to 8.1.0

  • The requirement for a minimum supported React Native version of 0.74 has been removed. You can now use this library with earlier versions of React Native, as long as they meet other necessary dependencies.

Migration to 8.0.0

  • The minimum supported React Native version is 0.74 due to the requirements of compileSdk 34 and classpath("org.jetbrains.kotlin:kotlin-gradle-plugin"). Please upgrade your project to React Native version 0.74 or higher to ensure compatibility.

  • Update Android dependency in you app's build.gradle:

  dependencies {
-    implementation 'com.incode.sdk:core-light:2.6.3'
+    implementation 'com.incode.sdk:core-light:2.6.4'
  }
  • Update compileSdk version to 34:
  android {
-    compileSdk 33
+    compileSdk 34
  }
  • Expo integration. Update plugins field in app.json:
 "plugins": [
      [
        "@incode-sdks/expo-incode-sdk-configuration",
        {
-    "coreLightVersion": "2.6.3"
+    "coreLightVersion": "2.6.4"
        }
      ]
   ]

Migration to 6.4.0

  • Update Android dependency in you app's build.gradle:
  dependencies {
-    implementation 'com.incode.sdk:core-light:2.6.2'
+    implementation 'com.incode.sdk:core-light:2.6.3'
  }
  • Expo integration. Update plugins field in app.json:
 "plugins": [
      [
        "@incode-sdks/expo-incode-sdk-configuration",
        {
-    "coreLightVersion": "2.6.2"
+    "coreLightVersion": "2.6.3"
        }
      ]
   ]

Migration to 6.2.0

  • Update Android dependency in you app's build.gradle:
  dependencies {
-    implementation 'com.incode.sdk:core-light:2.6.1'
+    implementation 'com.incode.sdk:core-light:2.6.2'
  }
  • Expo integration. Update plugins field in app.json:
 "plugins": [
      [
        "@incode-sdks/expo-incode-sdk-configuration",
        {
-    "coreLightVersion": "2.6.1"
+    "coreLightVersion": "2.6.2"
        }
      ]
   ]

Migration to 6.1.0

  • Expo integration. Update plugins field in app.json:
 "plugins": [
      [
        "@incode-sdks/expo-incode-sdk-configuration",
        {
+    "coreLightVersion": "2.6.1"
        }
      ]
   ]

Migration to 6.0.0

  • Update Incode SDK dependency in package.json:
  "dependencies": {
-    "react-native-incode-sdk": "https://sdk-js.s3.amazonaws.com/react-native/react-native-incode-sdk-5.6.0-nvc.tgz"
+    "@incode-sdks/react-native-incode-sdk": "^6.0.0"
  }
  • Update Podfile:

If RN >= 0.69 remove this line:

-   pod 'react-native-incode-sdk', :path => '../node_modules/react-native-incode-sdk/'

If RN < 0.69 update this line:

-    pod 'react-native-incode-sdk', :path => '../node_modules/react-native-incode-sdk/'
+    pod 'react-native-incode-sdk', :path => '../node_modules/@incode-sdks/react-native-incode-sdk/'
  • Update App.js:
-   import IncodeSdk from 'react-native-incode-sdk';
+   import IncodeSdk from '@incode-sdks/react-native-incode-sdk';
  • Update Android dependency in you app's build.gradle:
  dependencies {
-    implementation 'com.incode.sdk:core-light:2.5.1
+    implementation 'com.incode.sdk:core-light:2.6.1'
  }

Migration to 5.6.1

  • Update Android dependency in you app's build.gradle:
  dependencies {
-    implementation 'com.incode.sdk:core-light:2.5.0
+    implementation 'com.incode.sdk:core-light:2.5.1'
  }

Migration to 5.4.0

  • Update Android minSdkVersion in you Android projects's build.gradle:
  buildscript {
    ext {
-    minSdkVersion = 17
-    compileSdkVersion = 31
-    targetSdkVersion = 31
+    minSdkVersion = 21
+    compileSdkVersion = 21
+    targetSdkVersion = 21
    }
  }

Migration to 5.3.0

  • Update Android dependency in you app's build.gradle:
  dependencies {
-    implementation 'com.incode.sdk:core-light:2.3.0
+    implementation 'com.incode.sdk:core-light:2.5.0'
  }

Migration to 5.2.1

  • Update Android dependency in you app's build.gradle:
  dependencies {
-    implementation 'com.incode.sdk:core-light:2.2.0
+    implementation 'com.incode.sdk:core-light:2.3.0'
  }

Migration to 5.1.0

Removed startFaceLogin parameter customerToken, specify only customerUUID.

Migration to 5.x

  1. startOnboarding and startOnboardingSection parameter name config renamed to flowConfig.
IncodeSdk.startOnboarding({
-     config: [
+     flowConfig: [
        { module: 'IdScan' },
        { module: 'SelfieScan' },
        { module: 'FaceMatch' },
      ],
    })
IncodeSdk.startOnboardingSection({
-     config: [
+     flowConfig: [
        { module: 'IdScan' },
        { module: 'SelfieScan' },
        { module: 'FaceMatch' },
      ],
    })
  1. Added setupOnboardingSession that replaces creatingNewOnboardingSession and setOnboardingSession
- await IncodeSdk.creatingNewOnboardingSession({})
+ await IncodeSdk.setupOnboardingSession({})
- await IncodeSdk.setOnboardingSession({})
+ await IncodeSdk.setupOnboardingSession({})
  1. validationModules param of createNewOnboardingSession and setOnboardingSession is now part of setupOnboardingSession method's sessionConfig param
- await IncodeSdk.createNewOnboardingSession({
-        sessionConfig: {
-         ...
-        },
-        validationModules: ['id', 'liveness'],
+ await IncodeSdk.setupOnboardingSession({
+        sessionConfig: {
+         ...
+         validationModules: ['id', 'liveness'],
+        },
- await IncodeSdk.setOnboardingSession({
-        sessionConfig: {
-         ...
-        },
-        validationModules: ['id', 'liveness'],
+ await IncodeSdk.setupOnboardingSession({
+        sessionConfig: {
+         ...
+         validationModules: ['id', 'liveness'],
+        },

Migration to 4.5.0-nvc

  • Update Android dependency in you app's build.gradle:
  dependencies {
-    implementation 'com.incode.sdk:core-light:2.0.0
+    implementation 'com.incode.sdk:core-light:2.2.0'
  }

Migration to 4.4.1-nvc

  • In your Android app's build.gradle file set compileSdkVersion to 31 or higher.

Migration to 4.4.0-nvc

UserScoreCompleteEvent fields are now reorganized differently:

  • Basic parsed user score results are stored in result.data
  • Full UserScore data is set as raw JSON in result.extendedUserScoreJsonData field

Migration to 4.x

initialize method changes:

  • Removed conferenceUrl parameter method that wasn't used.
  • Removed regionCode parameter, now part of OnboardingSessionConfig object that is available as an optional parameter in startOnboarding, createOnboardingSession, and setOnboardingSession methods.

startOnboarding method changes:

  • Removed interviewId parameter, now part of sessionConfig object that is available as an optional parameter
  • Removed configurationId parameter, now part of sessionConfig object that is available as an optional parameter
  • Added optional sessionConfig parameter, OnboardingSessionConfig object where you can specify all session parameters.

createOnboardingSession method changes:

  • Removed unused verifiers parameter
  • Added optional sessionConfig parameter, OnboardingSessionConfig object where you can specify all session parameters.
  • Added validationModules parameter, where you can specify the list of validation modules used for a session.

startOnboardingSection method changes:

  • Removed interviewId parameter. Please specify it either in createOnboardingSession or setOnboardingSession via sessionConfig parameter.

Migration to 3.2.x

How ID results were provided before 3.2.x:

const setupListeners = () => {
  // returns a callback to unregister your listener, e.g. when your screen is getting unmounted
  const complete = IncodeSdk.onStepCompleted;
  return [
    complete({
      module: 'IdScan',
      listener: (e) => {
        console.log('ID scan result:', e.result);
      },
    }),
  ];
};

How to listen for ID results in 3.2.x:

const setupListeners = () => {
  // returns a callback to unregister your listener, e.g. when your screen is getting unmounted
  const complete = IncodeSdk.onStepCompleted;
  return [
    complete({
      module: 'IdScanFront',
      listener: (e) => {
        console.log('ID scan front result:', e.result);
      },
    }),
    complete({
      module: 'IdScanBack',
      listener: (e) => {
        console.log('ID scan back result: ', e.result);
      },
    }),
    complete({
      module: 'ProcessId',
      listener: (e) => {
        console.log('ProcessId result: ', e.result.extendedOcrData);
      },
    }),
  ];
};

iOS Podfile changes

Standard SDK:

Replace

pod 'react-native-incode-sdk', :path => '../node_modules/react-native-incode-sdk'

with:

pod 'react-native-incode-sdk', :path => '../node_modules/react-native-incode-sdk/ios'

Dynamic Delivery:

Replace

pod 'react-native-incode-sdk/ODR', :path => '../node_modules/react-native-incode-sdk'

with:

pod 'react-native-incode-sdk/ODR', :path => '../node_modules/react-native-incode-sdk/ios'

Migration to 3.1.x

If you wish to keep using standard/Non-Dynamic Delivery version of the SDK on Android platform, please add this dependency in you app's build.gradle:

implementation 'com.incode.sdk:core-light:2.0.0'