为 debug 和 release 设置不同的包名

开发时为 debug 和 release 版本设置不同的包名,这样 debug 和 release 可以同时安装到同一个手机上。为了区分可以为 debug 和 release 设置不同的名称或设置不同的 icon。
resValue 可以操作资源,配置如下

buildTypes {
    debug {
        applicationIdSuffix '.debug'
        versionNameSuffix '-DEBUG'
        resValue 'string', 'app_name', '青青互助-debug'
    }

    release {
        resValue 'string', 'app_name', '青青互助'
    }

    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith('.apk')) {
                def suffix = ''
                if (variant.buildType.name.equals('release')) {
                    suffix = 'release'
                } else if (variant.buildType.name.equals('debug')) {
                    suffix = 'debug'
                }
                def fileName = "app_v${defaultConfig.versionName}_${variant.productFlavors[0].name}_${releaseTime()}_${suffix}.apk"
                output.outputFile = new File(outputFile.parent, fileName)
            }
        }
    }
}

记得删除原来 string.xml 中的 app_name,否则编译时会报资源重复

也可以为 debug 版本设置不同的 icon, 把图片扔到 app/src/debug/res 对应的目录中就行了

你可能感兴趣的:(为 debug 和 release 设置不同的包名)