(OLD) Advanced Device

NeuroID offers an Advanced Device Library that will collect additional signals for usage. The Advanced Device Library has been integrated into our core library (starting with iOS SDK 3.4.2, Android SDK 3.5.2 and React Native SDK 3.4.1.

iOS Installation

1. Installing the SDK

For SDK versions less than 3.4.2:

In your project Podfile where you have pod "NeuroID", on the following line add pod "NeuroID/AdvancedDevice" and re-run pod install

target 'Your App Name' do
    pod 'NeuroID'
  	pod 'NeuroID/AdvancedDevice'
end

For SDK versions 3.4.2 or greater:

Follow the normal iOS SDK instructions here. After installation is complete, return here to continue to step 2 "Using AdvancedDevice Tracking".

2. Using the AdvancedDevice Tracking

In order to use the AdvanceDevice SDK in your iOS app please follow the setup instructions of the NeuroID iOS SDK with ONE exception.

3.1.0+

Locate your NeuroID.startSession("yourSessionID") command and replace it with NeuroID.startSession("yourSessionID", true) or NeuroID.startSession(nil, true). Passing a true parameter indicates you would like to enable AdvancedDevice tracking

let startedResult = NeuroID.startSession("yourSessionID", true)
print("NeuroID started \(startedResult.started) with session ID \(startedResult.sessionID)")

<3.1.0

Locate your NeuroID.start() command and replace it with NeuroID.start(true). Passing a true parameter indicates you would like to enable AdvancedDevice tracking

NeuroID.start(true)

Android Installation

1. Installing the SDK

For SDK versions less than 3.5.2:

  • Specify the repositories from where the dependencies are going to be resolved. They could be added either in your app-level build.gradle:
// Use this block ONLY for Gradle versions 7 or higher
android {
...
	repositories {
  	...
  	maven { url 'https://maven.fpregistry.io/releases' }
  	maven { url 'https://jitpack.io' }
	}
}
// Use this block ONLY if Gradle version is lower than 7.
allprojects {	
  repositories {
  ...
  maven { url 'https://maven.fpregistry.io/releases' }
  maven { url 'https://jitpack.io' }
}}

or in your project level settings.gradle:

dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        maven { url 'https://maven.fpregistry.io/releases' }
        maven { url 'https://jitpack.io' }
    }
}
  • Add the dependency to your build.gradle file. To see available versions, please visit [Released Versions] and choose v3.0.5 or higher.
dependencies {
 implementation 'com.github.Neuro-ID:neuroid-android-sdk:android-advanced-device-sdk:vX.X.X'
}

When using the NeuroID Android SDK .aar files locally, the FPJS library has to added explicitly.

  • Add the additional dependency to your build.gradle file.
dependencies {
    implementation "com.fingerprint.android:pro:2.5.0"{
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib'
    }
}

🚧

Add the following ProGuard rule in your Proguard file (required for mimifyEnabled true releases).

-keep class com.neuroid.** { *; }
-keep class retrofit2.** { *; }
-keep class com.google.gson.** { *; }-keep class com.neuroid.** { *; }

For SDK version 3.5.2. or greater:

Follow the normal Android SDK instructions here. After installation is complete, return here to continue to step 2 "Using AdvancedDevice Tracking".

2. Using AdvancedDevice Tracking

1. Import NeuroID start()method that will enable the Advanced Device Signal capabilities

import com.neuroid.tracker.extensions.startSession // 3.1.0+
import com.neuroid.tracker.extensions.start // <3.1.0

2. Replace the NeuroID.start Command

In order to use the AdvanceDevice SDK in your Android app please follow the setup instructions of the NeuroID Android SDK with ONE exception.

3.1.0+

Locate your NeuroID.getInstance()?.startSession("yourSessionID") command and replace it with NeuroID.getInstance()?.startSession("yourSessionID", true) or NeuroID.getInstance()?.startSession(nil, true). Passing a true parameter indicates you would like to enable AdvancedDevice tracking

var startedResult = NeuroID.getInstance()?.startSession("yourSessionID", true);
log.d("NeuroID","NeuroID started ${startedResult.started} with session ID ${startedResult.sessionID}");

<3.1.0

Locate your NeuroID.getInstance()?.start() command and replace it with NeuroID.getInstance()?.start(true). Passing a true parameter indicates you would like to enable AdvancedDevice tracking

NeuroID.getInstance()?.start(true)

Troubleshooting Tips

If build conflicts arise due to Kotlin versioning on the dependency then add the exclude option in the implementation.

dependencies {
  implementation "com.fingerprint.android:pro:2.3.2"{
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib'
    }
}

React-Native Installation

1. Installing the SDK

v3.4.1+

Install the regular NeuroID React-Native SDK. The 3.4.1 version of the SDK includes the Advanced Device features found in the previously seperate NeuroID React-Native AdvanceDevice SDK. Link to the npm is here.

  1. Installing via npm npm i neuroid-reactnative-sdk OR
  2. Adding "neuroid-reactnative-sdk":"X.X.X" to your package.json file and then running yarn/npm install

You will then need to run pod install in the iOS folder of your project.

Follow the configuration instructions here to initialize the SDK.

up to v3.4.0

Instead of installing the regular NeuroID React-Native SDK, please install ONLY the NeuroID React-Native AdvanceDevice SDK by either

  1. Installing via npm npm i neuroid-reactnative-sdk-advanced-device OR
  2. Adding "neuroid-reactnative-sdk-advanced-device":"X.X.X" to your package.json file and then running yarn/npm install

You will then need to run pod install in the iOS folder of your project.

2. Update The Android Project

To use the AdvanceDevice SDK you will need to update the app-level build.gradle inside the Android Project of your React-Native App in two spots.

  1. The repositories section
  2. The dependencies section
// Use this block ONLY for Gradle versions 7 or higher  
android {  
...  
	repositories {  
  	...  
  	maven { url 'https://maven.fpregistry.io/releases' }  
  	maven { url 'https://jitpack.io' }  
	}  
}

...
dependencies {
    implementation ("com.fingerprint.android:pro:2.5.0") {
        exclude group: 'org.jetbrains.kotlin', module: 'kotlin-stdlib'
    }
}

You will also need to add this line to your ProGuard file if you are obfuscating any variant of the app (debug, release, etc.).

-keep class com.neuroid.** { *; }

3. Using AdvancedDevice Tracking

In order to use the AdvanceDevice SDK in your React-Native app please follow the setup instructions of the NeuroID React-Native SDK with TWO exceptions.

  1. Update all your import NeuroID from 'neuroid-reactnative-sdk' to be import NeuroID from 'neuroid-reactnative-sdk-advanced-device';
  2. Update the start method appropriately (see 3.10 and <3.1.0 instructions below)

3.1.0+

Locate your NeuroID.startSession("yourSessionID") command and replace it with NeuroID.startSession("yourSessionID", true) or NeuroID.startSession(nil, true). Passing a true parameter indicates you would like to enable AdvancedDevice tracking

var startedResult = await NeuroID.startSession("yourSessionID", true);
log(`NeuroID","NeuroID started ${startedResult.started} with session ID ${startedResult.sessionID}`);

<3.1.0

Locate your NeuroID.getInstance()?.start() command and replace it with NeuroID.getInstance()?.start(true). Passing a true parameter indicates you would like to enable AdvancedDevice tracking

await NeuroID.start(true);