Android Jenkins 自动化打包构建
前言
在测试app项目过程中,通常都是需要开发打测试包给到测试,但是无论是iOS还是Android的打包过程都是相当漫长的,频繁的回归测试需要频繁的打包,对于开发同学影响还是蛮大的。因此在这种情况下,开发通常都会搭建一个简单的自动化打包平台(Jenkins),自动化构建打包或者上传到蒲公英,firm等分发平台。作为测试也需要了解相关的知识,用以优化提高开发测试效率。
涉及技术点:
- Jenkins的搭建配置,任务构建
- Android开发环境配置
- Android gradle的配置使用
内容包含:
- Java环境配置
- Android环境配置
gradle配置
- 下载gradle
- 配置环境变量
Jenkins配置
- 插件管理
- 系统设置
- 全局工具配置
- 构建任务配置
多渠道打包,360加固(废弃,直接开发设置gradle脚本)
- 360加固,多渠道打包介绍
- 360打包加固脚本(待优化)
上传蒲公英,显示下载二维码
- 添加插件upload to pyger
- 添加插件description setter plugin
- 配置上传蒲公英参数和显示二维码
参数化构建之选择分支构建
- 添加插件Git Parameter
- 配置参数化构建,选择Git Parameter
- 构建时选择分支
Java环境配置
下载jdk,安装即可
Android环境配置
下载安装配置Android SDK
gradle配置
下载gradle
下载地址:http://services.gradle.org/distributions/
选择与项目相对应的gradle版本
也可以直接使用brew安装
配置环境变量
打开终端:
- open -e ~/.bash_profile,使用文本编辑打开它
#gradle的目录地址
GRADLE_HOME=/Users/louchengwang/Library/gradle-4.10.1
export GRADLE_HOME export PATH=$PATH:$GRADLE_HOME/bin
2. source ~/.bash_profile 更新文件
3. gradle -version 查看gradle 版本
Jenkins配置
Jenkins的安装部署就不说了,一路next就好
插件管理
插件搜索
gradle
gitlab plugin
系统设置
设置全局属性,配置android home
全局工具配置
配置gradle
也可以使用自动安装,但是容易超时,所以还是自己下载安装好了直接使用
构建任务配置
- 源码管理选择 git,输入git账号密码,选择分支
- 触发构建器自行选择
- 构建选择Invoke Gradle script
clean: 清理项目 assembleRelease: 打包项目,生成的apk包路径在 /Android项目/app/build/outputs/apk
高级-设置Root Build script和Build file
这里也可以不设置,如果不设置的话,默认项目目录是在 /Users/louchengwang/.jenkins/workspace
还需要注意的点,Jenkins提供了一些可用的公共变量,例如${WORKSPACE},就是当前项目的目录地址
多渠道打包,360加固(废弃,直接开发设置gradle脚本)
使用360加固宝对安装包进行加固,并且进行多渠道打包。
360加固,多渠道打包介绍
在GitHub中已经将360加固宝文件上传上去,就在Android项目的根目录中,我们使用命令行的方式进行打包加固
360命令行加固打包介绍:
- 使用帮助 java -jar jiagu.jar -help
- 登录 java -jar jiagu.jar -login <username> <password>
- 签名配置,导入签名keystore信息 java -jar jiagu.jar -importsign <keystore_path> <keystore_password> <alias> <alias_password>
- 渠道配置,导入渠道信息 java -jar jiagu.jar -importmulpkg <mulpkg_path> 这个需要看下项目是使用什么样的方式进行渠道划分
- 配置加固服务 查看当前加固服务配置 java -jar jiagu.jar -showconfig
- 应用加固,如果不是高级用户服务,普通的加固服务配置就可以 java -jar jiagu.jar -jiagu <inputAPKpath> <outputpath> -autosign -automulpkg
360打包加固脚本(待优化)
apks=${WORKSPACE}/app/build/outputs/apk channel=("official" "tencent") DEST=${WORKSPACE}/reinforce/ for chan in ${channel[@]} do file=$apks"/"$chan/release/sjk_v1.2.0_$chan.apk file=${WORKSPACE}/app/build/outputs/apk"/"$chan/release/sjk_v1.2.0_$chan.apk java -jar ${WORKSPACE}/jiagu/jiagu.jar -login 15154111005 lou4871768 java -jar ${WORKSPACE}/jiagu/jiagu.jar -importsign ${WORKSPACE}/sjk.jks sanjieke.comsjk sanjieke.com java -jar ${WORKSPACE}/jiagu/jiagu.jar -showsign echo $file java -jar ${WORKSPACE}/jiagu/jiagu.jar -jiagu ${file} ${DEST} -autosign done
待优化的点
- 现在打包渠道是固定死的,应该自动识别apk目录下的包并进行打包加固
- 打包完成后,可以增加压缩打包并邮件发出等服务
保存,点击构建,如果构建失败查看log,看是哪里的问题。
上传蒲公英,显示下载二维码
添加插件upload to pyger
添加插件description setter plugin
配置上传蒲公英参数和显示二维码
配置完成效果
参数化构建之选择分支构建
添加插件Git Parameter
配置参数化构建,选择Git Parameter
返回文档
构建时选择分支
Android Jenkins 自动化打包构建的更多相关文章
- iOS Jenkins 自动化打包构建
前言 在测试app项目过程中,通常都是需要开发打测试包给到测试,但是无论是iOS还是Android的打包过程都是相当漫长的,频繁的回归测试需要频繁的打包,对于开发同学影响还是蛮大的.因此在这种情况下, ...
- gitlab+jenkins自动化打包APK
前置条件: 环境搭建,jenkins需要的插件看这里: gitlab+jenkins自动化打包IOS 配置思路: step1: 搭建sdk,gradle运行环境,参照: CentOS7下安装安装and ...
- Android Jenkins自动打包纪录
关于Jenkins自动打包Android的apk包,网上官方的太多,这里简单纪录一下博主的经历和打包的参数纪录 (本篇文章需要对Jenkins有最基本的基础了解) 博主所在公司曾负责app测试过程中发 ...
- gitlab+jenkins自动化打包IOS-jenkins配置
实现的效果如图: 构建界面: 完成效果: 功能说明: 根据选择的代码分支,执行构建打包 构建成功后根据ipa/apk生成二维码,并可在历史构建列表中展示各个版本的二维码,通过手机扫描二维码可直接安装 ...
- 搭建Jenkins自动化持续构建和部署系统
什么是Jenkins? Jenkins是一个持续集成和持续交付的java应用程序,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和部署技术.简单得说就是一款自动化构建测试和部署的 ...
- iOS自动化探索(九)使用Jenkins自动化打包并发布iOS App
继前一篇: Mac环境下安装Jenkins Jenkins安装好后, 我们试着创建一个iOS自动打包并发布的任务 iOS App构建必须在MAC上面使用xcode进行,所以我们要安装下xcode集成插 ...
- jenkins自动化打包报错:gradle: 未找到命令
shell脚本如下: cd /home/wangju/gitProject/Automation echo "************************开始清理环境********** ...
- Jenkins自动化打包配置
具体流程不细讲,教程很多 * 环境配置: * xmapp安装 * Jenkins.war丢到Tomcat目录中,配置Jenkins * 宿主机安装jdk,gradle,配置环境变量(在Jenkins的 ...
- jenkins自动化打包部署
请参考: http://m.blog.csdn.net/article/details?id=50518959 1.启动 jenkins.war ,打开首页 192.168.158.129:8080 ...
随机推荐
- BZOJ4556 HEOI2016/TJOI2016字符串 (后缀树+主席树)
二分答案后相当于判断一个区间的后缀与某个后缀的最长公共前缀是否能>=ans.建出后缀树,在上述问题中后者所在节点向上倍增的跳至len>=ans的最高点,然后相当于查询子树中是否有该区间的节 ...
- hdu 1002 prime 模板
Constructing Roads Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Other ...
- 虚拟机Vmware使用记录
一直使用的是docker for windows,但是总会出现能打包,能打tag,但是push超时,所以想着弄个虚拟机来实现. 第一步: 安装VMware,安装一个ubantu最新的系统. 第二步: ...
- Docker使用整理
Docker技术的基础: namespace,容器隔离的基础,保证A容器看不到B容器. 6个名空间:User,Mnt,Network,UTS,IPC,Pid cgroups,容器资源统计和隔离.主要用 ...
- vue 数组对象取对象的属性: Cannot read property 'xxxx' of undefined
{{ list[0].name }} list[0]没有定义 能正确打印出想要的结果,但就是报错,外面套个v-for就没错了 很费解 看到文章说是与异步有关,解决办法: <template v- ...
- Uwl.Admin开源框架(一)
1.前言 作为一个忠实的软粉,一直期待微软出跨平台,一直在等待.Net Core,因为刚毕业对于.Net的很多东西不是很熟知,就开始了.Net Core的摸索,一路上坎坎坷坷,对于新技术一直很期待,就 ...
- java注解日志记录到数据库
1. pom添加依赖包 <!--添加aop依赖--><dependency> <groupId>org.springframework.boot</group ...
- webpack如何使用vue
1.安装vue的包: cnpm i vue -S 2.在main.js中导入包 3.运行起来报错 3.1第一种解决办法: 3.2第二种解决办法: 让我们先回顾一下包的查找规则: //1.找项目根目录 ...
- 定位之z-index
我们已经知道固定定位(fixed)和绝对定位(absolute)可以让盒子浮起来 相对定位(relactive)虽然不能让盒子浮起来,但也是可以让图层浮起来 那么既然大家都可以浮起来,就会存在一个问题 ...
- KVM之virsh管理虚拟机CPU
查看虚拟机CPU数量配置 [root@ubuntu ~]# virsh vcpucount centos_server01 maximum config 2 maximum live 2 curren ...