Android Studio打包的时候,我们想自定义自己的文件名,则可以使用
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// apk_渠道名-版本号-版本名称-编译时间.apk
def fileName = "apk_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime() }.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
其中releaseTime()如下:
def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}
Sync Now之后,正常打包,打出来的文件名就会是我们想要的了
<u>apk_渠道名-版本号-版本名称-编译时间.apk</u>
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "24.0.0"
defaultConfig {
applicationId "app."
minSdkVersion 16
targetSdkVersion 22
versionCode 10 // 9
versionName "1.2.4"
}
sourceSets {
main {
jniLibs.srcDirs = ['src/main/jniLibs']
}
}
buildTypes {
release {
// 混淆
minifyEnabled true
// Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true
// 前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,后一个文件是自己的定义混淆文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// apk_渠道名-版本号-版本名称-编译时间.apk
def fileName = "apk_${variant.productFlavors[0].name}-${defaultConfig.versionCode}-${defaultConfig.versionName}-${releaseTime() }.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
}
productFlavors {
qihu360 {} // 360手机助手
yingyongbao {} // 腾讯应用宝
wandoujia {} // 豌豆荚
// baidu {} // 百度手机助手
// miui {} // 小米
// flyme {} // 魅族
// lenovo {} // 联想-乐商店
// oppo {} // Oppo-可可软件商店
// huawei {} // 华为
// vivo {} // vivo
// hiapk {} // 安卓市场
// sj91 {} // 91手机助手
// sogou {} // 搜狗手机市场
// sohu {} // 搜狐应用中心
// taobao {} // 淘宝手机助手
// gfan {} // 机锋
// appchina {} // 应用汇
// mumayi {} // 木蚂蚁
// wangyi163 {} // 网易应用
// nduoa {} // N多市场
// mm10086 {} // MM商城-中国移动
// wostore {} // WO商店
// youyi {} // 优异
// uc {} // UC+开发平台
// anzhi {} // 安智市场
// google {} // google play
// amazon {} // 亚马逊
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
}
def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}