Migration Guide

Migration to 4.4.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'
  }
  • If you are using NFC variant of the SDK follow the steps below to enable NFC scanning on iOS:
  1. 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.
  2. 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.

  3. 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.

Example app migration

To run the example app, follow these steps:

  1. Navigate to root of the example folder. Create .env file. The file is added in .gitignore so it won't be pushed to the repository. It is used to store your own credentials. Example of the .env file content:
# Demo
DEMO_API_URL=YOUR_API_URL
DEMO_API_KEY=YOUR_API_KEY
DEMO_COMBINED_CONSENT_ID=YOUR_COMBINED_CONSENT_ID
DEMO_WORKFLOW_CONFIGURATION_ID=YOUR_WORKFLOW_CONFIGURATION_ID
DEMO_FLOW_CONFIGURATION_ID=YOUR_FLOW_CONFIGURATION_ID
DEMO_DEEP_LINK=YOUR_DEEP_LINK
    
# SaaS
SAAS_API_URL==YOUR_API_URL
SAAS_API_KEY=YOUR_API_KEY
SAAS_COMBINED_CONSENT_ID=YOUR_COMBINED_CONSENT_ID
SAAS_WORKFLOW_CONFIGURATION_ID=YOUR_WORKFLOW_CONFIGURATION_ID
SAAS_FLOW_CONFIGURATION_ID=YOUR_FLOW_CONFIGURATION_ID
SAAS_DEEP_LINK=YOUR_DEEP_LINK
  1. Run flutter pub get to install dependencies.
  2. Run the following commands to generate corresponding files for those env values:
  flutter pub run build_runner clean
  flutter pub run build_runner build --delete-conflicting-outputs
  1. The mandatory values to run the app properly are apiKey and apiUrl. Replace the other values in home.dart based on your needs.
  2. Run the app.

Migration to 4.3.0

  • iOS integration requires Podfile update and SSH access being setup on the machine. 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.

Migration to 3.2.0

compileSdk and/or compileSdkVersion should be updated to 34.

Migration to 3.0.0

  1. Remove core-light dependency in your Android project's build.gradle:
dependencies {
- implementation 'com.incode.sdk:core-light:2.6.2' // Required core dependency
}

com.incode.sdk:core-light dependency is now part of the Flutter SDK itself.

  1. Gradle versions should be updated to 7.+, ie. :
     dependencies {
-        classpath 'com.android.tools.build:gradle:4.2.0'
+        classpath 'com.android.tools.build:gradle:7.4.2'
     }

Update gradle distributionUrl in your gradle-wrapper.properties:

-        distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-all.zip
+        distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip

Migration to 2.8.0

  1. Update dependency in your Android project's build.gradle:
dependencies {
- implementation 'com.incode.sdk:core-light:2.6.1' // Required core dependency
+ implementation 'com.incode.sdk:core-light:2.6.2' // Required core dependency
}

Migration to 2.7.0

  1. Update dependency in your Android project's build.gradle:
dependencies {
- implementation 'com.incode.sdk:core-light:2.5.1' // Required core dependency
+ implementation 'com.incode.sdk:core-light:2.6.1' // Required core dependency
}
  1. The following dependencies are optional and needed only in very specific use cases.
    Make sure you are using the features they provide before adding the dependencies below. Update dependency in your Android project's build.gradle:
dependencies {
+ implementation 'com.incode.sdk:kiosk-login:1.3.1' // Optional kiosk-login dependency is only necessary if you are using Kiosk Login feature of the SDK.
+ implementation 'com.incode.sdk:model-liveness-detection:3.0.0' // Optional model-liveness-detection dependency is only necessary if you are using liveness detection feature that runs locally on device. This feature can be used within IncodeOnboardingSdk.startFaceLogin method
+ implementation 'com.incode.sdk:model-face-recognition:3.0.0' // Optional model-face-recognition dependency is only necessary if you are using face recognition feature that runs locally on device. This feature can be used within IncodeOnboardingSdk.startFaceLogin method
}

Migration to 2.6.0

  1. Update dependency in your Android project's build.gradle:
dependencies {
- implementation 'com.incode.sdk:core-light:2.5.0' // Required core dependency
+ implementation 'com.incode.sdk:core-light:2.5.1' // Required core dependency
}

Migration to 2.4.0

  1. Update dependency in your Android project's build.gradle:
dependencies {
- implementation 'com.incode.sdk:core-light:2.4.0' // Required core dependency
+ implementation 'com.incode.sdk:core-light:2.5.0' // Required core dependency
}
  1. Update compileSdkVersion and targetSdkVersion in your Android project's build.gradle to 33.

  2. Bumped minSdkVersion into 21 from 17

Migration to 2.2.0

  1. Update dependency in your Android project's build.gradle:
dependencies {
- implementation 'com.incode.sdk:core-light:2.3.0' // Required core dependency
+ implementation 'com.incode.sdk:core-light:2.4.0' // Required core dependency
}

Migration to 2.1.0

  1. Update dependency in your Android project's build.gradle:
dependencies {
- implementation 'com.incode.sdk:core-light:2.2.0' // Required core dependency
+ implementation 'com.incode.sdk:core-light:2.3.0' // Required core dependency
}

Migration to 2.x

  1. Added setupOnboardingSession that replaces creatingNewOnboardingSession and setOnboardingSession
- IncodeOnboardingSdk.creatingNewOnboardingSession
+ IncodeOnboardingSdk.setupOnboardingSession
- IncodeOnboardingSdk.setOnboardingSession
+ IncodeOnboardingSdk.setupOnboardingSession
  1. iOS app setup changed - it is no longer needed to add these lines to the Podfile, so these should be removed when upgrading to 2.x:
-source 'https://github.com/CocoaPods/Specs.git'
-source '[email protected]:Incode-Technologies-Example-Repos/IncdDistributionPodspecs.git'