# Requirements

Flutter version >=1.20.0

# Installation

## pubspec.yaml

```typescript
dependencies:

...

onboarding_flutter_wrapper:
   	git:
     	url: git@github.com:Incode-Technologies-Example-Repos/IncdOnboardingFlutter.git
		ref: master

...
```

# Additional Setup for iOS

1. Verify LFS is installed and running [Git LFS Documentation](https://git-lfs.com/)
2. Change your Podfile so it requires deployment target 13 or higher.

## Podfile

```objectivec
-platform :ios, '10.0'
+platform :ios, '13.0'
```

3. Run `pod install`

## Objective-C

```objectivec
cd ios && pod install cd ..
```

4. Add the following to the `Info.plist` file:

- `NSCameraUsageDescription`: The SDK uses the camera in order to verify the identity of the customer, e.g. in ID scan, Selfie scan and so on.
- `NSLocationWhenInUseUsageDescription`: The SDK uses the current user location in order to detect exact location for Geolocation step.
- `NSMicrophoneUsageDescription`: The SDK uses microphone for performing a video call during Video Conference step or for doing speech recognition during Video Selfie.

# Additional Setup for Android

1. Modify `app/build.gradle` so that you enable `multiDexEnabled` and set the minimum API level to 21:

## Kotlin

```kotlin
defaultConfig {
  …
  multiDexEnabled true
  minSdkVersion 21
}
```

2. Modify your `build.gradle` so it contains GitHub Packages username and password, provided by Incode.

> ⚠️
>
> IMPORTANT
>
> As of September 29th, 2025, distribution through Artifactory is no longer supported. If you are currently using Artifactory in your production integration, you must complete the migration to GitHub Packages to ensure uninterrupted access to the SDK.

## Kotlin

```kotlin
allprojects {
  repositories {
    ...
+    jcenter()
+    maven {
+      url "https://maven.pkg.github.com/Incode-Technologies-Example-Repos/android-omni-packages"
+      credentials {
+        username = "incode-customers"
+        password = "GITHUB_TOKEN"
+      }
+    }
    ...
  }
}
```

3. Add the following dependency to your `app/build.gradle`:

## Kotlin

```kotlin
+   implementation 'com.android.support:multidex:1.0.3'
```

Other optional dependencies can be added for optimized Face Login features:

- Add `'com.incode.sdk:model-mask-detection:3.0.0'` to detect face mask during face login.
- Add `'com.incode.sdk:model-liveness-detection:2.0.0'` to use local liveness by specifying .hybrid or .local `FaceAuthMode` for face login.
- Add `'com.incode.sdk:model-face-recognition:3.0.0'` to use local face recognition by specifying .local `FaceAuthMode` for face login.

# Updating to latest version

Run `flutter pub upgrade` or `flutter packages upgrade`, and in case iOS SDK version was updated run `pod install --repo-update` and `pod update IncdOnboarding` inside your iOS folder.
