Integrating Mobile SDK for iOS

📘 Overview

  • Library Name: IntellicheckSDK
  • Latest Version: 1.0.0
  • Purpose: Enables scanning and verification of identity documents such as driver's licenses and passports.

📋 Requirements

  • MinimumOSVersion: 11
  • Xcode SDK / Deployment Target: 17
  • Hardware: A device with a high-quality camera capable of scanning PDF417 barcodes.

🚀 Integration Steps

1. Obtain the SDK

To receive the SDK archive, contact our support team and request the file named:

  • IntellicheckSDK.zip

2. Add the SDK to Your Project

2.1 Configure SDK Versions

In Info.plist:

<key>MinimumOSVersion</key>
<string>11.0</string>

In Xcode project settings:

  • Set Deployment Target to 11.0
  • Use iOS 17 SDK for compiling (comes with Xcode 15 or later)

2.2 Add SDK Files

Create a folder named Frameworks in the root directory of your Xcode project. Unzip IntellicheckSDK.zip into the Frameworks folder.

Your folder structure should look like:

project-root/

 └── Frameworks/
  └── IntellicheckSDK/
   └── intellicheck.framework/

2.3 Link the framework

  1. Go to your project settings → General tab.
  2. Under Frameworks, Libraries, and Embedded Content, click the + button.
  3. Select Intellicheck.framework and set it to Embed & Sign.
  4. Update Build Settings (if needed):
  • Go to Build Settings → Framework Search Paths.
  • Add: $(PROJECT_DIR)/Frameworks/IntellicheckSDK

🧪 Usage Examples

Basic Usage

  • Use IntellicheckActivity for basic document verification.
  • Use configuration settings for optional extras.

IntellicheckActivity returns a transaction_id after successful scanning.

  • Use transaction_id to obtain results.
  • IntellicheckActivity.RESULT_TRANSACTION_ID is a constant to get the transaction_id.

To launch the SDK without additional configuration:

import UIKit
import IntellicheckSDK

class ViewController: UIViewController {

    func launchIntellicheckSDK() {
        let sdkViewController = IntellicheckViewController()
        
        sdkViewController.completionHandler = { transactionId in
            // Handle transaction ID
            print("Transaction ID: \(transactionId)")
        }

        self.present(sdkViewController, animated: true, completion: nil)
    }
}

Advanced Usage with Configuration

import UIKit
import IntellicheckSDK

class ViewController: UIViewController {

    func launchIntellicheckSDK(with currentSettings: SDKSettings) {
        let config = IntellicheckConfiguration(
            faceCheckState: currentSettings.faceCheckState,
            darkModeEnabled: currentSettings.darkModeState,
            backgroundColor: currentSettings.backgroundColor,
            primaryColor: currentSettings.primaryColor,
            mainFontColor: currentSettings.mainFontColor,
            buttonOutlineColor: currentSettings.buttonOutline,
            buttonFontColor: currentSettings.buttonFontColor,
            descriptionFont: currentSettings.descriptionFont,
            buttonFont: currentSettings.buttonFont,
            descriptionBoldFont: currentSettings.descriptionBoldFont,
            buttonCornerRadius: currentSettings.buttonCornerRadius,
            organizationLogo: UIImage(named: currentSettings.organizationLogoName),
            showScanningIsDoneScreen: currentSettings.showScanningIsDoneScreen,
            serverCustomerId: currentSettings.serverCustomerId,
            scanOnlyBarcode: currentSettings.scanOnlyBarcode
        )

        let sdkViewController = IntellicheckViewController(configuration: config)

        sdkViewController.completionHandler = { transactionId in
            // Handle transaction ID
            print("Transaction ID: \(transactionId)")
        }

        self.present(sdkViewController, animated: true, completion: nil)
    }
}

⚙️ Configuration Options

SettingTypeDescription
faceCheckStateBooleanEnable face check (true to activate).
darkModeStateBooleanRun in dark mode (true to enable).
backgroundColorIntARGB color integer for screen background.
primaryColorIntARGB color integer for primary UI elements.
mainFontColorIntARGB color integer for main text.
buttonOutlineIntARGB color integer for button outlines.
buttonFontColorIntARGB color integer for button text.
descriptionFontFontTypeFont type for description text.
buttonFontFontTypeFont type for button text.
descriptionBoldFontFontTypeFont type for bold description text.
buttonCornerRadiusIntCorner radius for buttons (0–100%).
organizationLogoIntDrawable resource ID for logo on the start screen.
showScanningIsDoneScreenBooleanShow “scanning complete” screen (true to enable).
serverCustomerIdIntCustomer ID sent to backend during requests.
scanOnlyBarcodeBooleanScan only barcode on Driver License screen (true to enable).

❓ Need Help?

If you encounter issues or have questions, please contact our support team.