博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android直接用手机打包apk!
阅读量:5301 次
发布时间:2019-06-14

本文共 6368 字,大约阅读时间需要 21 分钟。


 

你没有看错,用手机浏览器访问Jenkins,就可以打包apk,并生成下载二维码,发送邮件通知测试人员下载,从此解放双手,告别打包测试。先上本人手机邮箱收到的打包成功通知效果图:

 
 

废话少说,开干!

本人用的是Mac,以下操作都是在Mac环境下配置的,Windows环境的配置移步到

一、安装Jenkins

打开mac终端(本人用iTerm2),输入 brew install jenkins,brew命令得安装Homebrew,安装方法移步

 
 

一会儿jenkins就装好了,默认安装路径为/usr/local/Cellar/jenkins,在终端输入 jenkins启动jenkins

 
 

第一次启动jenkins会提示一个秘钥,登录控制台要用到,也可以在路径/Users/用户名/.jenkins/secrets/initialAdminPassword下查看秘钥

 
 

在浏览器输入localhost:8080可以登录jenkins控制台,输入刚才的秘钥,点击继续

 
 

插件安装选推荐的就好了

 
 

等待自动安装完成

 
 

创建一个管理员用户,保存并继续

 
 

设置Jenkins URL,默认为localhost,改成自己电脑的IP,即,点击保存并完成

 
 

点击开始使用Jenkins,就可以进入控制台

 
 

二、配置jenkins

点击 系统管理--系统设置

 
 

拉到全局属性,勾选环境变量,添加键值对配置Android SDK

 
 

找到系统管理员邮件地址,输入自己的邮箱

 
 

找到邮件通知,如下配置,qq邮箱的SMTP服务器为smtp.qq.com,其他邮箱的自行百度

 
 

记得勾选使用SMTP认证,密码不是你的qq密码,而是邮箱服务器密码,可以到邮箱查看邮箱服务器密码,打开qq邮箱,点击 设置--账户 拉到如下位置

 
 

点击开启POP3/SMTP服务,如果之前已经开启了,先点击关闭再点开启,提示要验证密保

 
 
验证完后就可以看到邮箱密码了
 
 
勾选 通过发送测试邮件测试配置 测试一下邮箱是否配置成功,输入你的邮箱,点击Test configuration,配置成功会提示Email was successfully sent,并且邮箱会收到一条信息
 
 
 
 

由于jenkins自带的邮件通知样式过于单调,而且不好用,所以我们用邮件扩展功能来自定义,拉到Extended E-mail Notification(没有这个选项的就是没装插件,主界面打开 系统管理--插件管理--可选插件,右上角搜索进行安装),如下配置,跟刚才配置差不多

 

勾选Require Administrator for Template Testing,点击右边的Default Triggers...

 
 
勾选如下三个选项,这样构建成功或失败都会发送邮件通知
 
 

点击保存,完成系统设置

 
 

接下来配置一下Gradle

 
 
找到Gradle,添加GRADLE_HOME,路径参照我的路径,找到自己电脑上的gradle
 
 
接下来开始新建任务,点击新建任务,如下操作
 
 
我的视图中可以看到新建的任务
 
 
点击右边任务进入任务详情
 
 

用Android Studio打开svn项目,在gradle.properties添加如下配置

APP_VERSION = 1.0.0IS_JENKINS = trueBUILD_TYPE = releasePRODUCT_FLAVORS = devBUILD_PATH_JENKINS = /Users/zachary/Documents/jenkins/remoteBUILD_PATH_LOCAL = /Users/zachary/Documents/jenkins/localBUILD_TIME= 2018-7-27APPNAME = SevenStars

以上为默认配置,字段等下在jenkins配置要用到,BUILD_PATH_JENKINS和BUILD_PATH_LOCAL为打包本地缓存目录

在app/build.gradle的android{}节点内修改下打包的apk名称

android.applicationVariants.all {        variant ->            variant.outputs.all {                //新名字                def newName                //输出文件夹                def outDirectory                //是否为Jenkins打包,输出路径不同                if ("true".equals(IS_JENKINS)) {                    timeNow = BUILD_TIME                    outDirectory = BUILD_PATH_JENKINS                    //BUILD_PATH为服务器输出路径                    variant.getPackageApplication().outputDirectory = new File(outDirectory)                    newName=APPNAME+"-v"+APP_VERSION+'-'+variant.productFlavors[0].name+'-'+variant.buildType.name+'.apk'                } else {                    outDirectory = BUILD_PATH_LOCAL                    //本机打包输出在本机路径                    variant.getPackageApplication().outputDirectory = new File(outDirectory)                    newName=APPNAME+"-v"+APP_VERSION+'-'+variant.productFlavors[0].name+'-'+variant.buildType.name+'.apk'                }                //在这里修改apk文件名                outputFileName = newName            }    }

 

回到jenkins,点击 配置--General,勾选参数化构建过程,选择 添加参数--选项参数

 
 
 

输入名称,与gradle.properties配置的字段一致,设置选项,输入app版本,描述随便填

 

继续点击 添加参数--字符参数

 
 
 

继续点击添加参数,添加两个选项参数,如下配置

 
 
 

这样配置的目的是为了让打包有更多可选项,设置完立即构建就变成了Build with Parameters

 
 
 

点击Build with Parameters可以看到多了构建选项

 

现在还不能构建,因为还没配置构建,回到 配置--构建 ,勾选Invoke Gradle

 
 
Gradle Version选择配置好的GRADLE_HOME,Tasks输入

clean assemble${PRODUCT_FLAVORS}${BUILD_TYPE}类似于Android Studio里的命令

 
 
 

点击 增加构建步骤--执行shell(上传apk到蒲公英生成二维码)

 
 
 

输入命令

curl -F "file=@/Users/zachary/Documents/jenkins/remote/SevenStars-v${APP_VERSION}-${PRODUCT_FLAVORS}-${BUILD_TYPE}.apk" -F "uKey=bfeb1a2e4febecd1b83878dd52c4fbfa" -F "_api_key=4481e4790641520d52c088291b4d8e79" https://www.pgyer.com/apiv1/app/upload > /tmp/upload_app.txturl=$(cat /tmp/upload_app.txt|awk -F':' '{print $(NF)}'|sed 's#\\##g')echo "download_URL:"
 
file的地址与gradle.properties配置的字段一致,自己体会啊哈哈......我怕被打,还是说一下,SevenStars-v${APP_VERSION}-${PRODUCT_FLAVORS}-${BUILD_TYPE}.apk就是匹配如下路径的apk,然后上传蒲公英
 
 

uKey和_api_key登陆蒲公英可拿到(注册一个蒲公英账号就有啦)

 

点击保存,回到项目任务,如下点击,开始构建

 
 
 

可以打开下拉列表选择 控制台输出 查看日志

 

看到构建成功

 

此时还没有二维码,登陆蒲公英,如下操作复制二维码地址

 
 
 

回到 配置--构建,点击 增加构建步骤

 

在Description中设置二维码地址,语法为HTML
<img src="蒲公英二维码地址">

 

点击保存,然后再次构建项目,就可以看到二维码啦

 
 

接着我们来配置邮件模板,点开 配置--构建后步骤,选择 增加构建后步骤--Editable Email Notification

 

在Default Content中黏贴如下html模板

${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志
(本邮件是程序自动下发的,请勿回复!)

构建结果 - ${BUILD_STATUS}

下载二维码
构建信息

Changes Since Last Successful Build:

${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:
%c
",showPaths=true,changesFormat="
[%a]
%m
",pathFormat="    %p"}
Failed Test Results

$FAILED_TESTS
构建日志 (最后 100行):

 

以下地方改成你的蒲公英二维码地址

 

 

拉到下面,Attach Build Log设置编译日志要不要发送到邮件,看具体需求,点开右边 高级设置

 
 
点高级
 
 

输入要发送的邮箱地址,多个用“,”隔开,一定要配置,不配置打死收不到邮件

 
 

点击保存,再次点击构建项目,不出意外的话,就可以收到邮件通知啦!

 
 
打开手机浏览器,输入
http://IP:端口号(电脑和手机连接的网络必须在同一个局域网)登陆jenkins控制台,点击构建,就可以打包apk啦!

如果同一个局域网还不能访问,链接launchd配置文件,终端输入

$ ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents

进入 /usr/local/opt/jenkins(Finder前往)用编辑器打开homebrew.mxcl.jenkins.plist

 
 
修改--httpListenAddress=0.0.0.0,把jenkins的监听地址改成广播的形式
 
 

修改完成,执行命令行:

$ launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

 

这样局域网的其他电脑就能访问你的ip啦如果要外网也能访问,可以把jenkins部署到Tomcat或者服务器(自己研究啊哈哈~)

 
 
 
可通过以下途径关注本人:

个人网站

Github

博客园

CSDN博客

简书

掘金

转载于:https://www.cnblogs.com/Zachary46/p/jenkins_android_apk.html

你可能感兴趣的文章
判断是否为空然后赋值
查看>>
zabbix监控日志文件
查看>>
正则表达式
查看>>
pip install torch on windows, and the 'from torch._C import * ImportError: DLL load failed:' s...
查看>>
环套树
查看>>
java基础(一):我对java的三个环境变量的简单理解和配置
查看>>
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>
YTU 2625: B 构造函数和析构函数
查看>>
apache自带压力测试工具ab的使用及解析
查看>>
C#使用Xamarin开发可移植移动应用(2.Xamarin.Forms布局,本篇很长,注意)附源码
查看>>
jenkins搭建
查看>>
C#中使用Split分隔字符串的技巧
查看>>
eclipse的调试方法的简单介绍
查看>>
加固linux
查看>>
IPSP问题
查看>>
(转)Java中的String为什么是不可变的? -- String源码分析
查看>>
HNU 10362 A+B for Input-Output Practice (II)
查看>>
十. 图形界面(GUI)设计9.列表和组合框
查看>>
10.17动手动脑
查看>>
js index of()用法
查看>>