之前沒有設置過打包的命名,每次打包都是預設的"app realease.apk",之後手動修改名字來顯示出它是一個新版本。 晚上學習瞭如何配置打包名稱,很簡單,修改build.gradle里的代碼就行。 詳細記錄如下: 1、打開app這個directory下的build.gradle 2、定義打包時 ...
之前沒有設置過打包的命名,每次打包都是預設的"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'
})
}