Studio 打包应用默认生成的 apk 名称是:app-release.apk 、如果我们要让生成的 apk 名跟我们版本包名有联系的话,那我们就要自定义生成的 apk 名了
需要在 build.gradle(Module:app) 文件下 android{ } 中添加:
- // apk name def
- android.applicationVariants.all { variant ->
- variant.outputs.each { output ->
- output.outputFile = new File(output.outputFile.parent, defaultConfig.applicationId + "-" + buildType.name + "-v" +
- defaultConfig.versionName + "-" + defaultConfig.versionCode + ".apk" );
- }
- }
这样我们打包的 apk 名就是:com.test.demo-release-v1.01-2.apk , 就自动带上我们的包名和版本号了,省去每次都要手动自己改了。
- 如果要生成如下版本号时间戳的apk包名,则可以用如下build.gradle代码:
- 模块名-渠道名-版本号-版本名称-包名-编译时间.apk
- apply plugin: 'com.android.application'
- def releaseTime() {
- return new Date().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
- }
- android {
- compileSdkVersion 23
- buildToolsVersion "23.0.1"
- defaultConfig {
- applicationId "com.djk.myapplication"
- minSdkVersion 14
- targetSdkVersion 23
- versionCode 1
- versionName "1.0"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
- productFlavors{
- develop{}
- xiaomi{}
- huawei{}
- anzhi{}
- }
- android.applicationVariants.all { variant ->
- variant.outputs.each { output ->
- def outputFile = output.outputFile
- if (outputFile != null && outputFile.name.endsWith('.apk')) {
- //这里修改apk文件名
- def fileName = "demo_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime() }.apk"
- output.outputFile = new File(outputFile.parent, fileName)
- }
- }
- }
- }
- dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- testCompile 'junit:junit:4.12'
- compile 'com.android.support:appcompat-v7:23.1.0'
- }
效果
来源: