二.jenkins配合Gradle实现自签名,自定义APK名称

上一篇文章:
一.jenkins+github+gradle 实现android自动化打包全攻略(MAC版)
http://www.jianshu.com/p/9caab25d2cf1
上次已经实现自动打包,那么如何进行APK自定义包名呢?如何进行自签名呢?
主要通过设置项目的build.gradle

Paste_Image.png

一.自定义APK的名称

比如格式为:时间项目名称版本号.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的输出路径:比如导出到下载目录
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 {//设置编译的lint开关,程序在buid的时候,会执行lint检查,有任何的错误或者警告提示,都会终止构建 
abortOnError false 
}

打包后的效果:

Paste_Image.png

待解决的问题

APK名称带时分秒,但是时与北京时间相差8小时


Paste_Image.png

解决办法:获取重庆时间

 new Date().format("yyyyMMdd HH:mm:ss", TimeZone.getTimeZone("Asia/Chongqing"))
Paste_Image.png

参考文章:
http://www.jianshu.com/p/83a99e26826c

image
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,613评论 25 709
  • 这一章主要针对项目中可以用到的一些实用功能来介绍Android Gradle,比如如何隐藏我们的证书文件,降低风险...
    acc8226阅读 7,762评论 3 25
  • 转载注明出处:http://www.jianshu.com/p/5255b100930e 0. 前言 完全由个人翻...
    王三的猫阿德阅读 2,625评论 0 4
  • 一 提起五月天,就会有一种青春、朝气、阳光的感觉扑面而来。听五月天的歌你会心生一种力量,这就是他们音乐里所传达出来...
    危笑天阅读 1,427评论 2 3
  • 代表周期股的钢铁,今天拉升,从技术上看,这个阶段的调整结束。 开始五浪的攻击。 从而带动整个周期股的崛起。 今天收...
    霸道_8a7f阅读 331评论 0 0