Jenkins中怎么打包android应用

Jenkins中怎么打包android应用,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

1.生成的apk名加上当前时间 + 修改apk的发布路径

在build.gradle配置文件下的android配置段下的buildTypes下找到你的编译配置项一般就是release

在release段下面加上如下代码

applicationVariants.all{variant->
if(variant.buildType.name.equals('release')){//如果是release版本
variant.outputs.each{output->defoutputFile=output.outputFile
if(outputFile!=null&&outputFile.name.endsWith('.apk')){//查找所有的apk
deffileName="${releaseTime()}_XXXXPorject_${defaultConfig.versionName}.apk"//重新定义apk的名称
output.outputFile=newFile(outputFile.parent,fileName)//outputFile.parent参数可以改成你你想要的发布路径
}
}
}
}

然后在build.gradle配置文件的末尾加上一个方法用来获取当前时间

defreleaseTime(){
//returnnewDate().format("yyyyMMdd",TimeZone.getTimeZone("UTC"))//年月日
returnnewDate().format("yyyyMMddHH-mm-ss",TimeZone.getTimeZone("GMT+8:00"))//年月日时分秒
}

2.实现自动化签名 别忘了jks文件也要放项目里

build.gradle的android段添加如下配置段 定义签名key

signingConfigs{//签名的配置
release{
storeFilefile("签名.jks")
storePassword'密码'
keyAlias'别名'
keyPassword'密码'
}
}

在android配置段下的buildTypes段的release段下添加一行 表示调用上面的签名配置

注意修改apk的名字后在android studio是无法开启调试模式,提示找不到apk

signingConfig signingConfigs.release

效果图

第一个是debug版本

第二个是没签名的release版本

第三个是签名后还改了名字的release版本

如果想编译某个版本的话 需要修改下执行gradle的命令行参数

Jenkins中怎么打包android应用

参考例子

applyplugin:'com.android.application'

android{
compileSdkVersion25
buildToolsVersion'24.0.3'
defaultConfig{
applicationId"com.coderstory.Purify"
minSdkVersion19
targetSdkVersion25
versionCode90
versionName"1.5.0"
resConfigs"cn"
}
repositories{
mavenCentral()
}

signingConfigs{//签名的配置
release{
storeFilefile("mykey.jks")
storePassword'a1234'
keyAlias'coolapk'
keyPassword'b1234'
}
}


buildTypes{
release{
shrinkResourcestrue
minifyEnabledtrue
signingConfigsigningConfigs.release
proguardFilesgetDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro'
applicationVariants.all{variant->
if(variant.buildType.name.equals('release')){//如果是release版本
variant.outputs.each{output->defoutputFile=output.outputFile
if(outputFile!=null&&outputFile.name.endsWith('.apk')){//查找所有的apk
deffileName="MIUIPurify_${releaseTime()}_${defaultConfig.versionName}.apk"//重新定义apk的名称
output.outputFile=newFile(outputFile.parent,fileName)//outputFile.parent参数可以改成你你想要的发布路径
}
}
}
}
}



}
productFlavors{
}
lintOptions{
abortOnErrorfalse
}


}

dependencies{
providedfileTree(include:['*.jar'],dir:'libs')
compileproject(':library')
compileproject(':pull')
compile'com.android.support:support-v4:25.0.1'
compile'com.android.support:appcompat-v7:25.0.1'
compile'com.android.support:design:25.0.1'
testCompile'junit:junit:4.12'
provided'de.robv.android.xposed:api:82'
}

defreleaseTime(){
//returnnewDate().format("yyyyMMdd",TimeZone.getTimeZone("UTC"))//年月日
returnnewDate().format("yyyyMMddHH-mm-ss",TimeZone.getTimeZone("GMT+8:00"))//年月日时分秒
}

看完上述内容,你们掌握Jenkins中怎么打包android应用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!

发布于 2021-06-13 23:19:40
收藏
分享
海报
0 条评论
178
上一篇:如何正确的使用Xposed插件 下一篇:C语言如何实现单链表控制台贪吃蛇小游戏
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码