CPoC SDK
Getting Started
Setup Guide

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-rc-10") {
          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-rc-10") {
          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"
            }
        }
    }