CPoC SDK Setup
Put the .license file to your project
Place the your-license-file.license in the app module's ./src/main/assets respectively
- your-license-file.license
 
Add MineSec Package Registry to your environment
In your machine/ environment, set up the credential for downloading the sdk package:
~/.gradle/gradle.properties
# minesec client registry
MINESEC_REGISTRY_LOGIN=minesec-product-support
MINESEC_REGISTRY_TOKEN={token-value}Please seek our customer support for the token.
Register the maven registry in your project
In your project, (usually) the settings.gradle or settings.gradle.kts, setup the maven registry like the following:
settings.gradle.kts
dependencyResolutionManagement {
    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    repositories {
        google()
        mavenCentral()
 
        // if you need to support Huawei devices
        maven {
            url = uri("https://developer.huawei.com/repo/")
        }
 
        // MineSec's maven registry
        maven {
            val MINESEC_REGISTRY_LOGIN: String? by settings
            val MINESEC_REGISTRY_TOKEN: String? by settings
 
            requireNotNull(MINESEC_REGISTRY_LOGIN) {
                """
                    Please set your MineSec Github credential in `gradle.properties`.
                    On local machine,
                    ** DO NOT **
                    ** DO NOT **
                    ** DO NOT **
                    Do not put it in the project's file. (and accidentally commit and push)
                    ** DO **
                    Do set it in your machine's global (~/.gradle/gradle.properties)
                """.trimIndent()
            }
            requireNotNull(MINESEC_REGISTRY_TOKEN)
            println("MS GPR: $MINESEC_REGISTRY_LOGIN")
 
            name = "MineSecMavenClientRegistry"
            url = uri("https://maven.pkg.github.com/theminesec/ms-registry-client")
            credentials {
                username = MINESEC_REGISTRY_LOGIN
                password = MINESEC_REGISTRY_TOKEN
            }
        }
    }
}Add SDK dependency in app gradle
In your app's build.gradle.kts, add the following dependency of the minesec sdk:
app/build.gradle.kts
dependencies {
    releaseImplementation("com.theminesec.sdk:minehades:1.10.105.12.30") {
      exclude(group = "org.bouncycastle", module = "bcprov-jdk15on")
      exclude(group = "org.bouncycastle", module = "bcpkix-jdk15on")
    }
    // for debug SDK, you can declare as debugImplementation
    debugImplementation("com.theminesec.sdk:minehades-stage:1.10.105.12.30") {
      exclude(group = "org.bouncycastle", module = "bcprov-jdk15on")
      exclude(group = "org.bouncycastle", module = "bcpkix-jdk15on")
    }
 
    // ... other deps
}Note that there are 2 versions of the SDK:
- live environment with 
name = "minehades", it is connected to live AMS & has a more strict security checks - stage environment with 
name = "minehades-stage", has a loosen security runtime check and connected to stage/ test environment 
You could depend the SDK with debugImplementation & releaseImplementation in your app's build.gradle
Exclude conflicting build meta
In the packaging option, add the following:
app/build.gradle.kts
android {
    // ...
    packaging {
        resources {
            // ...
 
            excludes += "/META-INF/DEPENDENCIES"
            excludes += "/META-INF/LICENSE"
            excludes += "/META-INF/LICENSE.txt"
            excludes += "/META-INF/license.txt"
            excludes += "/META-INF/NOTICE"
            excludes += "/META-INF/NOTICE.txt"
            excludes += "/META-INF/notice.txt"
            excludes += "/META-INF/ASL2.0"
            excludes += "/META-INF/*.kotlin_module"
        }
    }
}