Troubleshooting

In this section, you will find solutions to some common issues encountered during the integration of the Unico IDCloud SDK into your Android applications


Code Obfuscation


Obfuscation is a process of transforming the bytecode into a form that is less readable by humans, thereby making reverse engineering more difficult.

This process involves removing debugging-related information such as variable tables, line numbers, and renaming packages, classes, and methods.

When embedding the Android SDK in the application, issues may occur.

Obfuscation via DexGuard


When obfuscation is performed via DexGuard, in case of failure, use the following rules:

-keep class kotlin.coroutines.**
-keep class kotlinx.coroutines.**

-keep class com.facetec.sdk.** { *; }
-keep class com.acesso.acessobio_android.** { *; }
-keep class io.unico.** { *; }

-keep class br.com.makrosystems.haven.** { *; }
-keep class HavenSDK.**{ *; }
-keep class HavenSDK** { *; }

Obfuscation via ProGuard


When obfuscation is performed via ProGuard, in case of failure, use the following rules:

-keep class kotlin.coroutines.**
-keep class kotlinx.coroutines.**

-keep class com.facetec.sdk.** { *; }
-keep class com.acesso.acessobio_android.** { *; }
-keep class io.unico.** { *; }

-keep class br.com.makrosystems.haven.** { *; }
-keep class HavenSDK.**{ *; }
-keep class HavenSDK** { *; }

SDK Update - Version 4.3.x


Starting from version 4.4.x of the SDK, Unico began using its own Maven repository to distribute the Android SDK and changed the name of the SDK dependency, along with adjustments to ProGuard and DexGuard rules for clients using the GuardSquare library, as described in the Code Obfuscation section above.

Update the Maven Repository:


Change the Maven repository to the new repository in the project's build.gradle file.

The implementation was done as follows:

build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io'}
    }
}

It should now be updated to the new repository:

build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
allprojects {
    repositories {
        google()
        jcenter()
        maven { 
            url "https://maven-sdk.unico.run/sdk-mobile" 
        }
    }
}

Change the SDK Dependency


Change the SDK dependency to the new dependency in the app/build.gradle file of the project.

The implementation was done as follows:

app/build.gradle
/* unico */
dependencies {
    implementation 'com.github.acesso-io:acessobio-android:$version'
}

It should now be updated to the new dependency:

app/build.gradle
/* unico */
dependencies {
    implementation "io.unico:capture:$version"
}

Still need help?

Didn't find something or still need help? If you're already a client or partner, you can reach out through our Help Center.

Last updated

Was this helpful?