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 ...
随机推荐
- Abandoning Roads CodeForces - 1149D (最小生成树)
大意: 给定无向图, 边权只有两种, 对于每个点$x$, 输出所有最小生成树中, 点$1$到$x$的最短距离. 先将边权为$a$的边合并, 考虑添加边权为$b$的边. 每条路径只能经过每个连通块一次, ...
- BZOJ4698 SDOI2008Sandy的卡片(后缀自动机)
差分后即求多串LCS.先考虑两个串怎么做.对第一个串建SAM,第二个串在上面跑即可,任意时刻走到的节点表示的都是第二个串的当前前缀在第一个串中出现的最长的后缀,具体计算长度时每走一个字符长度+1,跳f ...
- 谷歌大脑提出:基于NAS的目标检测模型NAS-FPN,超越Mask R-CNN
谷歌大脑提出:基于NAS的目标检测模型NAS-FPN,超越Mask R-CNN 朱晓霞发表于目标检测和深度学习订阅 235 广告关闭 11.11 智慧上云 云服务器企业新用户优先购,享双11同等价格 ...
- 使用element-ui中的el-upload组件时携带其他参数
解决方法:// template <el-upload action="/api/oss/file/add" :headers="headers" // ...
- reduce方法的使用
reduce(收敛):接收一个回调函数作为累加器,数组中的每个值(从左到右)开始缩减,最终为一个值,是ES5中新增的又一个数组逐项处理方法. reduce(callback,initialValue) ...
- 批量删除checkbox前台后台
<%@ page contentType="text/html;charset=UTF-8" %><%@ include file="/WEB-INF/ ...
- Go 函数编程
函数的声明 在 Go 语言中,函数声明通用语法如下: func functionname(parametername type) returntype { // 函数体(具体实现的功能) } 函数的声 ...
- 使用私有api实现自己的iphone桌面,并根据app的使用次数对app排序
使用<iphone SprintBoard部分私有API总结>中提到的api,除了能对app运行次数进行监控以外,还可以实现自己的iphone桌面,并根据app 的使用次数对app图标进行 ...
- buffers和cached
buffers和cached是为了提高数据访问性能,减少对磁盘的I/O操作 buffers 用来给块设备做的缓冲大小 例如,目录内容,权限 cached 用来给文件做缓冲 例如,打开的文件 测试 先后 ...
- MyBatis-Spring 学习笔记一 SqlSessionFactoryBean以及映射器类
MyBatis-Spring 是一个用来整合 MyBatis 和 Spring 框架的小类库,通过这个jar包可以将 MyBatis 代码地整合到 Spring 中. 使用这个类库中的类, Sprin ...