上一篇文章:
一.jenkins+github+gradle 實(shí)現(xiàn)android自動(dòng)化打包全攻略(MAC版)
http://www.itdecent.cn/p/9caab25d2cf1
上次已經(jīng)實(shí)現(xiàn)自動(dòng)打包,那么如何進(jìn)行APK自定義包名呢?如何進(jìn)行自簽名呢?
主要通過設(shè)置項(xiàng)目的build.gradle

Paste_Image.png
一.自定義APK的名稱
比如格式為:時(shí)間項(xiàng)目名稱版本號(hào).apk

Paste_Image.png
applicationVariants.all { variant ->
if (variant.buildType.name.equals('release')) {
variant.outputs.each { output -> def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = "${releaseTime()}_com.andli.myproject_${defaultConfig.versionName}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
}
def releaseTime() {
return new Date().format("yyyyMMdd", TimeZone.getTimeZone("UTC"))
}
還可以自定義APK的輸出路徑:比如導(dǎo)出到下載目錄
output.outputFile = new File("/Users/XXX/Downloads", fileName)
二.自定義簽名

Paste_Image.png
signingConfigs {//簽名的配置
release {
storeFile file("簽名文件名稱.jks")
storePassword '密碼'
keyAlias '簽名文件別名'
keyPassword '密碼'
}
}
signingConfig signingConfigs.release//打包命令行:gradlew assembleRelease
lintOptions {//設(shè)置編譯的lint開關(guān),程序在buid的時(shí)候,會(huì)執(zhí)行l(wèi)int檢查,有任何的錯(cuò)誤或者警告提示,都會(huì)終止構(gòu)建
abortOnError false
}
打包后的效果:

Paste_Image.png
待解決的問題
APK名稱帶時(shí)分秒,但是時(shí)與北京時(shí)間相差8小時(shí)

Paste_Image.png
解決辦法:獲取重慶時(shí)間
new Date().format("yyyyMMdd HH:mm:ss", TimeZone.getTimeZone("Asia/Chongqing"))

Paste_Image.png
參考文章:
http://www.itdecent.cn/p/83a99e26826c

image