前言

在测试app项目过程中,通常都是需要开发打测试包给到测试,但是无论是iOS还是Android的打包过程都是相当漫长的,频繁的回归测试需要频繁的打包,对于开发同学影响还是蛮大的。因此在这种情况下,开发通常都会搭建一个简单的自动化打包平台(Jenkins),自动化构建打包或者上传到蒲公英,firm等分发平台。作为测试也需要了解相关的知识,用以优化提高开发测试效率。

涉及技术点:

  1. Jenkins的搭建配置,任务构建
  2. Android开发环境配置
  3. 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安装

配置环境变量

打开终端:

  1. 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

也可以使用自动安装,但是容易超时,所以还是自己下载安装好了直接使用

构建任务配置

  1. 源码管理选择 git,输入git账号密码,选择分支
  2. 触发构建器自行选择
  3. 构建选择Invoke Gradle script  clean: 清理项目 assembleRelease:  打包项目,生成的apk包路径在  /Android项目/app/build/outputs/apk
  4. 高级-设置Root Build script和Build file

    这里也可以不设置,如果不设置的话,默认项目目录是在 /Users/louchengwang/.jenkins/workspace

还需要注意的点,Jenkins提供了一些可用的公共变量,例如${WORKSPACE},就是当前项目的目录地址

多渠道打包,360加固(废弃,直接开发设置gradle脚本)

使用360加固宝对安装包进行加固,并且进行多渠道打包。

360加固,多渠道打包介绍

在GitHub中已经将360加固宝文件上传上去,就在Android项目的根目录中,我们使用命令行的方式进行打包加固

360命令行加固打包介绍:

  1. 使用帮助    java -jar jiagu.jar -help
  2. 登录     java -jar jiagu.jar -login <username> <password>
  3. 签名配置,导入签名keystore信息      java -jar jiagu.jar -importsign <keystore_path> <keystore_password> <alias> <alias_password>
  4. 渠道配置,导入渠道信息    java -jar jiagu.jar -importmulpkg <mulpkg_path>  这个需要看下项目是使用什么样的方式进行渠道划分
  5. 配置加固服务 查看当前加固服务配置    java -jar jiagu.jar -showconfig
  6. 应用加固,如果不是高级用户服务,普通的加固服务配置就可以 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

待优化的点

  1. 现在打包渠道是固定死的,应该自动识别apk目录下的包并进行打包加固
  2. 打包完成后,可以增加压缩打包并邮件发出等服务

保存,点击构建,如果构建失败查看log,看是哪里的问题。

上传蒲公英,显示下载二维码

添加插件upload to pyger

添加插件description setter plugin

配置上传蒲公英参数和显示二维码

配置完成效果

参数化构建之选择分支构建

添加插件Git Parameter

配置参数化构建,选择Git Parameter

返回文档

构建时选择分支

Android Jenkins 自动化打包构建的更多相关文章

  1. iOS Jenkins 自动化打包构建

    前言 在测试app项目过程中,通常都是需要开发打测试包给到测试,但是无论是iOS还是Android的打包过程都是相当漫长的,频繁的回归测试需要频繁的打包,对于开发同学影响还是蛮大的.因此在这种情况下, ...

  2. gitlab+jenkins自动化打包APK

    前置条件: 环境搭建,jenkins需要的插件看这里: gitlab+jenkins自动化打包IOS 配置思路: step1: 搭建sdk,gradle运行环境,参照: CentOS7下安装安装and ...

  3. Android Jenkins自动打包纪录

    关于Jenkins自动打包Android的apk包,网上官方的太多,这里简单纪录一下博主的经历和打包的参数纪录 (本篇文章需要对Jenkins有最基本的基础了解) 博主所在公司曾负责app测试过程中发 ...

  4. gitlab+jenkins自动化打包IOS-jenkins配置

    实现的效果如图:  构建界面: 完成效果: 功能说明: 根据选择的代码分支,执行构建打包 构建成功后根据ipa/apk生成二维码,并可在历史构建列表中展示各个版本的二维码,通过手机扫描二维码可直接安装 ...

  5. 搭建Jenkins自动化持续构建和部署系统

    什么是Jenkins? Jenkins是一个持续集成和持续交付的java应用程序,可以处理任何类型的构建或持续集成.集成Jenkins可以用于一些测试和部署技术.简单得说就是一款自动化构建测试和部署的 ...

  6. iOS自动化探索(九)使用Jenkins自动化打包并发布iOS App

    继前一篇: Mac环境下安装Jenkins Jenkins安装好后, 我们试着创建一个iOS自动打包并发布的任务 iOS App构建必须在MAC上面使用xcode进行,所以我们要安装下xcode集成插 ...

  7. jenkins自动化打包报错:gradle: 未找到命令

    shell脚本如下: cd /home/wangju/gitProject/Automation echo "************************开始清理环境********** ...

  8. Jenkins自动化打包配置

    具体流程不细讲,教程很多 * 环境配置: * xmapp安装 * Jenkins.war丢到Tomcat目录中,配置Jenkins * 宿主机安装jdk,gradle,配置环境变量(在Jenkins的 ...

  9. jenkins自动化打包部署

    请参考: http://m.blog.csdn.net/article/details?id=50518959 1.启动 jenkins.war ,打开首页  192.168.158.129:8080 ...

随机推荐

  1. Map 集合遍历的4种方法

    Map 集合初始化时,指定集合初始值大小. 说明:HashMap 使用 HashMap(int initialCapacity) 初始化. 正例:initialCapacity = (需要存储的元素个 ...

  2. (二)手动配置第一个HelloWorld程序

    上例的HelloWorld是由Android sutudio 自动生成的,现在我们手动来配置. 1. 重新创建工程 2. 创建空的Activity 生成的MainActivity.java 文件: p ...

  3. ROUTE: route addition failed

    ROUTE: route addition failed 1)报FlushIpNetTable failed on interface错误 应对:以管理员身份运行OpenV-P-N 2)报Warnin ...

  4. java封装数据类型——Boolean

    众所周知,java对常见的原始数据类型都提供了对应的封装类型,增加一些常用的特性(如 计算hash值.比较相等.类型转换等),以扩展他们对数据处理的能力,使得他们更好地适应面向对象编程的各种场景.今天 ...

  5. css 关于"浮动边距加倍"及其解决方法-------解决方案是在这个div里面加上display:inline;

    写div代码的时候,经常发现明明宽度算得很准确,但是莫明其妙的会和计划的布局不太一样- -|||开始以为自己代码写的有问题,拼命找bug也一无所获,最后可能会稍微修改样式来达到想要的效果,但终究也是外 ...

  6. Struts2系列漏洞起始篇

    前言 到目前位置struts2的漏洞编号已经到了S2-057,一直想系统的学习下Struts2的漏洞,但由于工作量较大,一直搁浅.最近由于工作需要,借此机会来填下坑.个人认为一个框架漏洞出来了仅仅看下 ...

  7. Go微服务 grpc/protobuf

    了解grpc/protobuf gRPC是一个高性能.通用的开源RPC框架,其由Google主要面向移动应用开发并基于HTTP/2协议标准而设计,基于ProtoBuf(Protocol Buffers ...

  8. 关于一个mvc架构的cms的后台getshell

    都知道,mvc的话 除了根目录还有public目录可以访问,其他的访问都是不行的,因为会默认都是会解析url 然后我们来看今天的猪脚 大概的图片上传还有远程文件加载我黑盒测过了  就是想捞一个快一点的 ...

  9. MySQL主从复制以及在本地环境搭建

    MySQL主从复制原理: master(主服务器),slave(从服务器) MySQL master 将数据变更写入二进制日志( binary log, 其中记录叫做二进制日志事binary log ...

  10. Dubbo:1

    Dubbo能解决什么问题 怎么去维护url:通过注册中心去维护url(zookeeper.redis.memcache…). F5硬件负载均衡器的单点压力比较大:软负载均衡. 怎么去整理出服务之间的依 ...