在Android上测试发布应用,而测试APK不被“保护”

时间:2018-11-17 21:08:26

标签: android gradle proguard android-proguard

我想在已启用proguard的android中测试发布apk。但是我不希望android test apk启用proguard。

是否可以通过某种方式禁用对Android测试APK的保护。

我添加了

defaultConfig { 
   ....
   testBuildType 'release'`
  }

    buildTypes {
        release {
            minifyEnabled true
            signingConfig signingConfigs.Release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            //proguard files for the android test apk
            testProguardFile('proguard-test-rules.pro')
        }
}

正在寻找一种方法来禁用针对Android测试的proguard。

2 个答案:

答案 0 :(得分:0)

使其工作如下。

android {

    defaultConfig {

        /**
         * switch to testBuildType release when the parameter has androidTestRelease
         * ./gradlew :app:assembleReleaseAndroidTest -PandroidTestRelease
         **/
        if (project.hasProperty('androidTestRelease')) {
            testBuildType 'release'
        } else {
            testBuildType 'debug'
        }
    }


    buildTypes {
        release {

            /***
             * Disable proguard when building the android test release apk
             * ./gradlew :app:assembleReleaseAndroidTest -PandroidTestRelease
             */
            if (project.hasProperty('androidTestRelease')) {
                minifyEnabled false
            } else {
                minifyEnabled true
            }

            signingConfig signingConfigs.Release
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            testCoverageEnabled = true
        }
    }

}

您可以使用

构建apk
./gradlew :app:assembleReleaseAndroidTest -PandroidTestRelease

答案 1 :(得分:0)

禁用ProGuard可能(无用)...更好地创建debuggable软件包:

staging {

    signingConfig signingConfigs.Release
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    testCoverageEnabled true
    minifyEnabled false
    zipAlignEnabled true
    shrinkResources true
    pseudoLocalesEnabled false
    renderscriptDebuggable true
    jniDebuggable true
    debuggable true
}

甚至还不确定是否可以对发布版本进行测试(通过设计)。