功能包含:正式编译自动修改版本号,编译APK自动签名,生成APK自动改名字
Github地址:github.com/naqunmiemie…
编译APK自动签名,生成APK自动改名字自行查看源码,这里只讲自动修改版本号的方法
1.在app的build.gradle添加如下代码
// --------- version -------------------------------------------------
updateVersion()
def updateVersion() {
def propertiesFile = file("build.properties")
Properties properties = readProperties(propertiesFile)
def versionCode = properties["version_code"].toString().toInteger()
def versionName = properties["version_name"].toString().toInteger()
if (isReleaseTask()) {
System.out.println(">>> Building Release...")
versionCode++
versionName++
properties["version_code"] = versionCode.toString()
properties["version_name"] = versionName.toString()
writeProperties(propertiesFile, properties)
}
android.defaultConfig.versionCode = versionCode
android.defaultConfig.versionName = versionName + getDateTime()
System.out.println(">>> " + project.parent.name + " versionName:" + versionName)
}
def isReleaseTask() {
def tasks = gradle.getStartParameter().getTaskNames()
return ":app:assembleRelease" in tasks ||
"ass" in tasks ||
"assemble" in tasks ||
"assembleRelease" in tasks ||
":app:bundleRelease" in tasks ||
"bundleRelease" in tasks
}
static Properties readProperties(propertiesFile) {
if (propertiesFile.canRead()) {
Properties properties = new Properties()
def inputStream = new FileInputStream(propertiesFile)
properties.load(inputStream)
inputStream.close()
return properties
} else {
def message = ">>> Could not read " + propertiesFile.name + " file!"
System.err.println(message)
throw new GradleException(message)
}
}
def static writeProperties(propertiesFile, properties) {
def writer = propertiesFile.newWriter()
properties.store(writer, "Build Properties")
writer.close()
}
def getDateTime(){
return new Date().format(".yyMMddHH", TimeZone.getTimeZone("GMT+08:00"))
}
// --------- version -------------------------------------------------
判断是否是正式编译如下图
2.修改android/defaultConfig下的versionCode和versionName
3.同级目录创建build.properties文件
即可使用