iOS

Follow the below guide in order to get started with Incode Mobile Onboarding.

Incode Welcome

Incode Welcome provides effortless onboarding where security matters. Incode Welcome is part of Incode Omnichannel Biometric Identity Platform, that is powered by Incode's world class Face Recognition, Liveness detection, and ID Validation models. Organizations may choose to have an optional video conference module for additional verification of the customer’s identity. If application size is a concern, the SDK features the ability to download its resources at runtime using On-Demand Resources.

In this repo you can find an example onboarding app that uses IncdOnboarding SDK to enable remote account opening.

Prerequisites

For running the example app you must have the following installed:

SDK Variants

The SDK is available in different variants which can differ in linking type, included features, and resource loading.

Versioning and Naming Convention The SDK uses custom versioning which is based on semantic versioning with alphabetic symbols representing linking type, specific optional feature(s), and resource loading:

MAJOR.MINOR.PATCH-LinkingType-Feature1-Feature2-...

Linking Type:

  • Dynamic -d (default)
  • Static -s

Optional Features:

  • Video Streaming -vc
  • Local Face Authentication -l
  • Local Face Mask Check -m
  • NFC Scan -nfc
  • End to End Encryption -e2ee
  • Risk Analysis -ra

Resources:

  • Embedded (default)
  • On-Demand Download (More information regarding On-Demand Resources can be found in the ODR User Guide)

Default Variant:

<version>-d Dynamic linking with embedded resources, excluding optional features. Recommended for most users.

Examples:

5.31.0-d Dynamic linking, embedded resources.

5.31.0-d-vc Dynamic linking with Video Streaming, embedded resources.

5.31.0-s-nfc Static linking with NFC Scan, embedded resources. (See NFC Scan-Integration & Usage for more details.)

5.31.0-s-vc-e2ee Static linking with Video Streaming and End to End Encryption, embedded resources.

Installation

There are three different methods to add the SDK to your app:

  • Installation via CocoaPods
  • Installation via SPM (Available only for specific variants. Other variants coming soon)
  • Manual installation

Cocoapods and SPM are the most convenient and fastest ways to get the SDK installed on your app especially if your project already utilizes these dependency managers. Manual installation offers more flexibility and configurability within your project settings.

Cocoapods Installation

  1. Make sure you have all the Prerequisites
  2. Choose the SDK variant
  3. Specify the source and the pod in your Podfile:
  • source '[email protected]:Incode-Technologies-Example-Repos/IncdDistributionPodspecs.git'
  •  `pod 'IncdOnboarding', '5.14.0-d'`
  1. In the Terminal, navigate to your app's project directory and run the pod install command
    • If you're using a static variant of the SDK, add the following values to the "Import Paths" build setting: "$(SRCROOT)/Pods/IncdOnboarding/IncdOnboarding.xcframework/ios-arm64" "$(SRCROOT)/Pods/IncdOnboarding/IncdOnboarding.xcframework/ios-x86_64-simulator"
  2. Drag & drop the Incode-Info.plist from the example project to your Xcode project (anywhere you prefer inside of the Project navigator).
  3. In the “Choose options for adding these files” window, select “Copy items if needed”, select “Create groups”, and then select the targets you wish to use.
  4. Open the Incode-Info.plist inside your Xcode project and set the OnboardingURL, OnboardingApiKey, and ConferenceURL with the respective values provided by Incode.
  5. Depending on the modules you would like to use, you can adapt your Info.plist by adding:
    • 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.
    • NFCReaderUsageDescription:The SDK uses NFC Reader for reading Passports or other documents that have NFC chip within.
📘

NOTE

For variants using the VideoConference module, there is a bug with CocoaPods that links the needed OpenTok dependency twice. This causes a duplicate interface error during runtime. The Podfile in the example app contains a post install script to fix this. You can use this script in your own podfile. It can also be done manually, by deleting the "-framework OpenTok" text from the pods xcconfig file after every pod install command.

If you are running a Mac computer with Apple Silicon and get errors while trying to install the pod, use the following two commands in Terminal as a fix:

sudo arch -x86_64 gem install ffi
arch -x86_64 pod install

SPM Installation

  1. Make sure you have all the Prerequisites
  2. Choose the SDK variant
  3. Tap the project in the left side bar and follow the third tab named Package Dependencies.
  4. Add the SPM repository https://github.com/Incode-Technologies-Example-Repos/IncdOnboarding-distribution.git
  5. When adding the package, select branch for dependency rule and enter the full version you want to integrate. e.g. 5.31.1-d or 5.31.1-d-l.

Manual Installation

  1. Ensure you have all the Prerequisites (excluding CocoaPods).

  2. Clone the SDK distribution repository using git clone and check out the tag corresponding to the SDK variant you wish to use. For information about tag meanings, refer to the CocoaPods Installation section.

    • Important: Do not download the repository or framework ZIPs directly from the GitHub website. Instead, use a Git client to clone the repository.
  3. Add SDK Files to Your Xcode Project:

    • Navigate to the IncdOnboarding folder in the cloned repository.
    • Select all files except the .podspec file.
    • Drag and drop the selected files into your Xcode project in the Project Navigator.
  4. If you are using an SDK variant that includes the Video Conference module, download the required OpenTok framework. Otherwise, skip this step.

  5. In the “Choose options for adding these files” window, select “Copy items if needed”, select “Create groups”, and then select the targets you wish to use.

  6. For each target, navigate to the Frameworks, Libraries, and Embedded Content section and configure the embedding options:

    • IncdOnboarding.xcframework (Static variant): Set to "Do Not Embed".
    • IncdOnboarding.xcframework (Dynamic variant): Set to "Embed & Sign".
    • opencv2.framework and OpenTok.framework: Set to "Do Not Embed".
  7. In the Project Build Settings, add the following to Other Linker Flags:

    -l "stdc++" -l "iconv" -framework "VideoToolbox"
  8. Depending on the SDK modules you plan to use, update your Info.plist with the following keys:

    • NSCameraUsageDescription: The SDK requires access to the camera to verify the identity of the user, such as during ID or selfie scans.
    • NSLocationWhenInUseUsageDescription: The SDK uses location services to detect the user's current location for the Geolocation step.
    • NSMicrophoneUsageDescription: The SDK requires access to the microphone for video calls during the Video Conference step or for speech recognition during Video Selfie.
    • NFCReaderUsageDescription: The SDK uses the NFC reader to read passports or other documents that contain an NFC chip.

Run the Example App

  1. Make sure you have all the of prerequisites.
  2. Clone or download this project (Incode-Welcome-Example-iOS).
  3. Follow instructions for Cocoapods/SPM/Manual installation.
  4. If the SDK was added using Cocoapods, open Omni.xcworkspace . If it was added using SPM or Manual installation, open Omni.xcodeproj.
  5. Open Environment/Incode-Info.plist and set the values for:
    • IncdOnboardingURL [string] with the provided Onboarding URL
    • IncdOnboardingApiKey [string] with the provided API key
    • ConferenceURL [string] with the provided Onboarding URL (If applicable)
  6. Run the Omni scheme.

What’s Next

Next, check out the Standard Integration guide on getting Incode up and running.