Android Studio 自定義打包apk名字
阿新 • • 發佈:2018-11-26
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之後,正常打包,打出來的檔名就會是我們想要的了 apk_渠道名-版本號-版本名稱-編譯時間.apk
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")) }