Android Studio中Gradle自定義APK名稱及輸出路徑
阿新 • • 發佈:2018-12-11
使用AndroidStudio生成Android APK時候,往往需要指定APK輸出路徑及重新命名APK。 因此在Gradle中編碼,以實現上述需求:
android {
...// 省略已存在程式碼
applicationVariants.all {
// 判斷Debug or Release
def buildType = it.buildType.name
def fileName
// 下面的channel是獲取渠道號,根據渠道定義的規則確定程式碼,非必須
def channel = it.productFlavors[0].name.split("-")[0]
// 獲取當前時間“YYYY-MM-dd”格式
def createTime = new Date().format("YYYY-MM-dd",TimeZone.getTimeZone("GMT+08:00"))
// 只有Release包可以變更路徑(因為AS會自動安裝Debug包,故Debug包路徑不能改變)
if (buildType == "release") {
it.getPackageApplication().outputDirectory = new File(project.rootDir.absolutePath + "/apks/${it.productFlavors[0].applicationId}/${createTime}" )
}
it.outputs.each {
// 同理,只有Release包可以變更名稱
if (buildType == "release") {
// 命名規則:渠道名_專案名_版本名_建立時間_構建型別.apk
fileName = "${channel}_專案名稱_v${defaultConfig.versionName}_${createTime}_${buildType}.apk"
// 將名字打印出來檢視效果
println "檔名:--->${fileName}"
// 命名生效
//it.outputFile = new File(it.outputFile.parent,fileName) // 適用於Gredle 4.0以下版本
it.outputFileName = fileName // Gradle 4.0及以上
}
}
}
...// 省略部分程式碼
}
將上述程式碼新增到自己的Gradle程式碼中按需更改即可
還有一點println fileName
輸出可在Gradle Console中檢視: