设为首页 加入收藏

TOP

Android打包版本号设置
2017-10-11 14:02:55 】 浏览:6890
Tags:Android 打包 版本 设置

之前没有设置过打包的命名,每次打包都是默认的"app-realease.apk",之后手动修改名字来显示出它是一个新版本。
晚上学习了如何配置打包名称,很简单,修改build.gradle里的代码就行。
详细记录如下:

1、打开app这个directory下的build.gradle

2、定义打包时间:

//时间
def releaseTime() {
    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}

3、自定义发布时的版本号(return的返回值可自行修改,例如1.0、2.0):

//版本号
def getVersionName(){
    return "2.0"
}

4、自定义打包名称(代码中的XYZ可修改为app名字):

    //名称
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def outputFile = output.outputFile
            def fileName
            if (outputFile != null && outputFile.name.endsWith('.apk')) {
                if (variant.buildType.name.equals('release')) {
                    variant.mergedFlavor.versionName = getVersionName()
                    fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"
                } else if (variant.buildType.name.equals('debug')) {
                    variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime()
                    fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk"
                }
                output.outputFile = new File(outputFile.parent, fileName)
            }
        }
    }

5、build.gradle的完整代码:

apply plugin: 'com.android.application'

//定义时间
def releaseTime() {
    return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}

//设置发布时的版本号
def getVersionName(){
    return "2.0"
}

android {
    compileSdkVersion 26
    buildToolsVersion "26.0.0"

    defaultConfig {
        applicationId "***"
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            buildConfigField("boolean","API_DEBUG","false")
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            buildConfigField("boolean","API_DEBUG","true")
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    //配置打包名称
    applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def outputFile = output.outputFile
            def fileName
            if (outputFile != null && outputFile.name.endsWith('.apk')) {
                if (variant.buildType.name.equals('release')) {
                    variant.mergedFlavor.versionName = getVersionName()
                    fileName = "XYZ_${variant.mergedFlavor.versionName}_release.apk"
                } else if (variant.buildType.name.equals('debug')) {
                    variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime()
                    fileName = "XYZ_${variant.mergedFlavor.versionName}_debug.apk"
                }
                output.outputFile = new File(outputFile.parent, fileName)
            }
        }
    }

}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
}
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇NavigationView头部设置监听事件 下一篇Android代码混淆的问题解决(java...

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目