productFlavors 定义不同的风味
flavorDimensions 定义产品领域, 定义productFlavors 的必要属性
manifestPlaceholders 可以替换androidmanifest文件中的标签
关键字 productFlavors flavorDimensions
productFlavors 定义不同的风味
flavorDimensions 定义产品领域, 定义productFlavors 的必要属性
android { productFlavors {
A {
dimension "app"
manifestPlaceholders = [
key_supportsRtl: "true",
key_icon : "@drawable/icon_manual"
]
} } }
android { flavorDimensions "app","env" }
manifestPlaceholders替换manifest里的值
productFlavors {
A {
dimension "app"
manifestPlaceholders = [
key_supportsRtl: "true",
key_icon : "@drawable/icon_manual"
]
} }
android:icon="${key_icon}"
android.applicationVariants.all { variant -> variant.outputs.each { output -> def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { def fileName = outputFile.name.replace("之前系统默认名称.apk", "想要替换的名称${defaultConfig.versionName}_${getDate()}.apk") output.outputFile = new File(outputFile.parent, fileName) } } }
调用时使用${getDate()}
//获取时间戳
static def getDate() {
def date = new Date()
def formattedDate = date.format('MMddHHmm')
return formattedDate
}
调用 ${getDate()}.apk
获取当前分支的提交次数 def getGitCommitTimes() {
return 'git rev-list HEAD --first-parent --count'.execute().text.trim().toInteger()
} versionName "aaa." + getGitCommitTimes() + "." + new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
def getGitCommitTimes() {
return 'git rev-list HEAD --first-parent --count'.execute().text.trim().toInteger()
}
applicationVariants.all { variant ->
if (variant.buildType.name.equals('release')) {
variant.outputs.all { output ->
outputFileName = "AppName_" + versionName + ".apk"
}
}
}
if(BuildConfig.FLAVOR.equals("external")){//用于判断打包的是哪个版本 }
快速解决方式 ,proguard-rules.pro文件里添加-ignorewarnings