Troubleshooting

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"
}

Last updated

Was this helpful?