Migration Guide
Migration to 9.6.0
E2EE variant removed
RN SDK 'e2ee' variant is no longer distributed, as e2ee functionality is now offered in a standard RN SDK variant.
Android optional dependencies
For Android, if you use any of the following optional dependencies, make sure to update to the latest versions
implementation 'com.incode.sdk:nfc:1.4.4'
implementation 'com.incode.sdk:video-streaming:1.6.0'
implementation 'com.incode.sdk:extensions:1.2.1'
implementation 'com.incode.sdk:model-face-recognition:3.5.1'
implementation 'com.incode.sdk:model-id-face-detection:3.5.1'
implementation 'com.incode.sdk:model-liveness-detection:3.2.1'Android minSdk changes
For Android, if you use the video-streaming dependency, you need to upgrade your minSdk to 24 or higher. The requirement is coming from the OpenTok dependency, which now requires a minimum SDK version of 24. This update is necessary to ensure compatibility with the 16KB page size support mandated by Google starting from November 1st 2025. More info (https://developer.android.com/guide/practices/page-sizes).
Migration to 9.5.0
For Android, if you use any of the following optional dependencies, make sure to update to the latest versions
implementation 'com.incode.sdk:extensions:1.2.0'
implementation 'com.incode.sdk:nfc:1.4.3'Migration to 9.4.0
For Android, if you use any of the following optional dependencies, make sure to update to the latest versions
implementation 'com.incode.sdk:model-face-recognition:3.5.0'
implementation 'com.incode.sdk:model-id-face-detection:3.5.0'
implementation 'com.incode.sdk:nfc:1.4.2'The qr-face-login dependency is no longer available and has been removed in this version of the SDK. Please update your project configuration accordingly.
Remove the qr-face-login dependency from your build.gradle
Migration to 9.3.0
- Update Android
minSdkVersionin you Android projects'sbuild.gradle:
buildscript {
ext {
- minSdkVersion = 21
+ minSdkVersion = 23
}
}
Remove com.incode.sdk:camera:1.1.0 dependency in your app’s build.gradle file:
dependencies {
- implementation 'com.incode.sdk:camera:1.1.0'
}For Expo integrations, update your app.json:
{
"expo": {
"plugins": [
[
{
- "addCamera": "1.1.0"
}
]
]
}
}
If you are using NFC variant of the SDK follow the steps below to enable NFC scanning on iOS:
-
Turn on Near Field Communication Tag Reading under the Capabilities tab for the project’s target. This step:
- Adds the NFC tag-reading feature to the App ID.
- Adds the Near Field Communication Tag Reader Session Formats Entitlement to the entitlements file.
-
Add the NFCReaderUsageDescription key as a string item to the Info.plist file. For the value, enter a string that describes the reason the app needs access to the device’s NFC reader. If the app attempts to read a tag without providing this key and string, the app will crash.
-
Add interface for interacting with an ISO 7816 tag to App's Info.plist:
<key>com.apple.developer.nfc.readersession.iso7816.select-identifiers</key>
<array>
<string>A0000002471001</string>
<string>A0000002472001</string>
<string>00000000000000</string>
</array>
NOTE
If your app supports devices with iOS prior to 13.0, you will also need to set CoreNFC.framework and CryptoTokenKit.framework as an optional frameworks:
Select your app target
Under Build Phases -> Link Binary With Libraries add: CoreNFC.framework, CryptoTokenKit.framework and SwiftUI.framework libraries if they are already not on the list.
And finally, for all three libraries, under Status, select Optional.
Note that even though NFC Scan module will not be performed on devices with iOS version older than 13, these steps are required because otherwise the app will crash on launch time.
If you are using Expo with the NFC variant, in order for it to work on Android it is necessary to:
- Bump
expo-incode-sdk-configurationversion to 1.1.4 inpackage.json.
{
"dependencies": {
- "@incode-sdks/expo-incode-sdk-configuration": "1.1.3"
+ "@incode-sdks/expo-incode-sdk-configuration": "1.1.4"
}
} - Add
addNfcplugin inapp.json.
"plugins": [
[
"@incode-sdks/expo-incode-sdk-configuration",
{
"artifactoryUserName": "client_artifactory_username",
"artifactoryPassword": "client_artifactory_password",
"addIncodeSourceToPodfile": true,
"cameraUsageDescription": "The SDK uses the camera in order to verify the identity of the customer, e.g. in ID scan, Selfie scan and so on.",
"locationWhenInUseUsageDescription": "The SDK uses the current user location in order to detect exact location for Geolocation step.",
"microphoneUsageDescription": "The SDK uses microphone for performing a video call during Video Conference step or for doing speech recognition during Video Selfie.",
+ "addNfc": "1.3.5"
}
]
]Migration to 9.1.0
To enable the new ID capture experience on Android, add the com.incode.sdk:camera:1.1.0 dependency to your app’s build.gradle file:
dependencies {
+ implementation 'com.incode.sdk:camera:1.1.0'
}For Expo integrations, update your app.json to enable the new ID capture experience:
{
"expo": {
"plugins": [
[
{
+ "addCamera": "1.1.0"
}
]
]
}
}Migration to 9.0.0
- RN SDK is now delivered in multiple versions:
9.0.0: Standard version9.0.0-vc: Includes streaming9.0.0-e2ee: Includes end-to-end encryption - Remove Android
com.incode.sdk:core-lightdependency in your app'sbuild.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 34andclasspath("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
compileSdkversion to 34:
android {
- compileSdk 33
+ compileSdk 34
}- Expo integration. Update
pluginsfield inapp.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
pluginsfield inapp.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
pluginsfield inapp.json:
"plugins": [
[
"@incode-sdks/expo-incode-sdk-configuration",
{
- "coreLightVersion": "2.6.1"
+ "coreLightVersion": "2.6.2"
}
]
]Migration to 6.1.0
- Expo integration. Update
pluginsfield inapp.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
minSdkVersionin you Android projects'sbuild.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
startOnboardingandstartOnboardingSectionparameter nameconfigrenamed toflowConfig.
IncodeSdk.startOnboarding({
- config: [
+ flowConfig: [
{ module: 'IdScan' },
{ module: 'SelfieScan' },
{ module: 'FaceMatch' },
],
})IncodeSdk.startOnboardingSection({
- config: [
+ flowConfig: [
{ module: 'IdScan' },
{ module: 'SelfieScan' },
{ module: 'FaceMatch' },
],
})- Added
setupOnboardingSessionthat replacescreatingNewOnboardingSessionandsetOnboardingSession
- await IncodeSdk.creatingNewOnboardingSession({})
+ await IncodeSdk.setupOnboardingSession({})- await IncodeSdk.setOnboardingSession({})
+ await IncodeSdk.setupOnboardingSession({})validationModulesparam ofcreateNewOnboardingSessionandsetOnboardingSessionis now part ofsetupOnboardingSessionmethod'ssessionConfigparam
- 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.gradlefile setcompileSdkVersionto 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.extendedUserScoreJsonDatafield
Migration to 4.x
initialize method changes:
- Removed
conferenceUrlparameter method that wasn't used. - Removed
regionCodeparameter, now part ofOnboardingSessionConfigobject that is available as an optional parameter instartOnboarding,createOnboardingSession, andsetOnboardingSessionmethods.
startOnboarding method changes:
- Removed
interviewIdparameter, now part ofsessionConfigobject that is available as an optional parameter - Removed
configurationIdparameter, now part ofsessionConfigobject that is available as an optional parameter - Added optional
sessionConfigparameter,OnboardingSessionConfigobject where you can specify all session parameters.
createOnboardingSession method changes:
- Removed unused
verifiersparameter - Added optional
sessionConfigparameter,OnboardingSessionConfigobject where you can specify all session parameters. - Added
validationModulesparameter, where you can specify the list of validation modules used for a session.
startOnboardingSection method changes:
- Removed
interviewIdparameter. Please specify it either increateOnboardingSessionorsetOnboardingSessionviasessionConfigparameter.
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'Updated about 1 month ago
