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的命令行参数
参考例子
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应用的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!
推荐阅读
-
docker启动jenkins环境的问题怎么解决
-
Jenkins怎么编译.NET Core和.NET Framework项目并远程部署到IIS
-
Linux下怎么使用Jenkins自动化构建.NET Core应用
-
使用Docker+jenkins+python3环境搭建的方法
-
Docker如何搭建Jenkins并自动化打包部署项目
-
jenkins如何实现shell脚本化定时执行任务
-
Jenkins+Gitee怎么实现.NET微服务架构CI/CD自动构建
-
jenkins和sonar实现代码检测过程是怎么样的
jenkins和sonar实现代码检测过程是怎么样的这篇文章给大家...
-
Gogs+Jenkins+Docker(自动化部署.NetCore的方法步骤)
-
jenkins中怎么部署.net平台