jenkins中怎么打包android应用-mile米乐体育
开发技术
2021年06月13日 23:19
1
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的命令行参数
参考例子
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应用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!
展开全文