Copy apply plugin: 'com.android.application'
//定义时间
def releaseTime() {
return new Date().format("yyyyMMddHHmmss")
}
//设置发布的显示的版本号
def getVersionName(){
return rootProject.ext.android.versionName
}
android{
//给apk添加对应的版本号:这里暂时注释但保留
//配置自定义打包名称
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()+"."+releaseTime()
fileName = "APK名称_${variant.mergedFlavor.versionName}_release.apk"
} else if (variant.buildType.name.equals('debug')) {
variant.mergedFlavor.versionName = getVersionName()+"."+releaseTime()
fileName = "APK名称_${variant.mergedFlavor.versionName}_debug.apk"
}
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
Copy //读取版本号
def getVersionCode() {
def versionFile = file('version.properties')
if (versionFile.canRead()) {
Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionFile))
def versionCode = versionProps['versionCode'].toInteger()
def runTasks = gradle.startParameter.taskNames //仅在assembleRelease任务是增加版本号
println 'runTasks:'+runTasks
if(':WeiChat:assembleBaiduDebug'in runTasks){
println 'runTasks:'+'debug模式打包apk'
}
if(':WeiChat:assembleBaiduRelease'in runTasks){
println 'runTasks:'+'发布模式打包apk'
versionProps['versionCode'] = (++versionCode).toString()
versionProps.store(versionFile.newWriter(), null)
}
return versionCode
} else {
throw new GradleException("Could not find version.properties!")
}
}
//声明变量
def currentVersionCode = getVersionCode()
//版本自增长
android{
defaultConfig {
applicationId project.applicationId
minSdkVersion rootProject.ext.android.minSdkVersion
targetSdkVersion rootProject.ext.android.targetSdkVersion
// versionCode rootProject.ext.android.versionCode
//关键代码
versionCode currentVersionCode
versionName rootProject.ext.android.versionName
multiDexEnabled true
signingConfig signingConfigs.config
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "umeng"]
ndk {
abiFilters "armeabi", "armeabi-v7a", "x86", "mips", "x86_64", "mips64"
}
}
}
Copy <meta-data
android:name="UMENG_CHANNEL"
android:value="${UMENG_CHANNEL}"/>
Copy android {
defaultConfig {
applicationId "xxxxxxxxx"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
manifestPlaceholders = [UMENG_CHANNEL: "example"]//默认渠道
} //自动多渠道打包
productFlavors {
xiaomi {}
_360 {}
baidu {}
wandoujia {} //...添加其它渠道
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL: name]
}
}