前言

在测试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. [Vue]导航守卫:全局的、单个路由独享的、组件级的

    正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的. 记住参数或查询的改变并不会触发进入/离开的 ...

  2. 将自定义dockerfile生成的image推送到仓库中

    本文为以阿里云的案例方法,其他方法未尝试 1.注册阿里云账号 2.设置密码并通过docker登录 3.创建命名空间 4.创建镜像仓库 创建仓库时,需要选择代码源的仓库储存的方式,这里我用的是gitHu ...

  3. 利用jwt生成token,用于http请求身份验证

    前段时间在做移动端接口过程中,考虑到安全性,所有移动端发送请求(除了登录请求)过程中进行token有效验证. 1.利用jwt生成token a.导入jwt相关包 <!-- jwt --> ...

  4. eclipse设置各种编码

    https://blog.csdn.net/qq_32786873/article/details/81910022

  5. “df: cannot read table of mounted file systems”.

    “df: cannot read table of mounted file systems”.“df -l” returned an error: “df: cannot read table of ...

  6. MYSQL编码转换的问题latin1转utf8

    1.先导出 mysqldump --default-character-set=latin1 --create-options=false --set-charset=false  -u root - ...

  7. Android Service的有关总结

    来自一位网友的评论 1.使用方式 startService 启动的服务 主要用于启动一个服务执行后台任务,不进行通信.停止服务使用stopService bindService 启动的服务 该方法启动 ...

  8. CAD二次开发之入门坑

    如果没有引用第一个dll,则会报未找到引用CommandMethod

  9. 后台向前台响应的json数据格式的一些问题

    最近在写后台向前台easyUI页面发送数据时遇到的一些报错. 首先easyUI内部封装了许多的方法和对象,以至于很多参数都不清楚,需要查询,其次easyUI也是有内置ajax所以从后台响应回来的数据一 ...

  10. OSI七层与TCP/IP五层

    OSI七层与TCP/IP五层网络架构详解 OSI和TCP/IP是很基础但又非常重要的网络基础知识,理解得透彻对运维工程师来说非常有帮助.今天偶又复习了一下: (1)OSI七层模型 OSI中的层 功能 ...