简体   繁体   English

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

[英]Testing the release app in android with the test apk not being `proguarded`

I want to test the release apk in android which has proguard enabled. 我想在已启用proguard的android中测试发布apk。 But I dont want the android test apk to be proguard enabled. 但是我不希望android test apk启用proguard。

Is there some way to disable proguarding the android test apk. 有什么方法可以禁用保护Android测试apk。

I added this 我加了这个

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

and

    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')
        }
}

Looking for a method which disable the proguard for the android test. 寻找一种方法来禁用proguard的android测试。

Got it to working as follows. 使其按如下方式工作。

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

}

You can build the apk using 您可以使用以下方式构建apk

./gradlew :app:assembleReleaseAndroidTest -PandroidTestRelease

it's (probably) useless to disable ProGuard ...better create a debuggable package: 禁用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
}

while it's not even certain, that one can have tests for release builds (by design). 尽管还不确定,但可以针对发布版本进行测试(通过设计)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM