zoukankan      html  css  js  c++  java
  • 【最新】Android使用jenkins全自动构建打包-Windows版本(Android,Jenkins,360加固,Email,QRcode,参数构建,蒲公英)

     Android打包喝咖啡系列(Windows版)

    这篇博客主要讲述的内容:

      1、windows上部署Jenkins https://jenkins.io

      2、基于SVN或Git https://github.com/Codetroupe/JenKinsTestAPP

      3、Android项目参数化自动构建

      4、自动将APK上传至蒲公英 https://www.pgyer.com

        5、自动发Email到指定邮箱提示构建结果

      6、自动本地360插件加固apk包http://jiagu.360.cn 

    下面开始正式内容,惯例先上一张界面图:

       

      第一步:windows上部署Jenkins并配置环境

      1、打开官网https://jenkins.io  

      点击download,建议下载左边的稳定版,右边的踩过坑,莫名其妙报了个错,然后重装。选择windows版下载,得到一个安装程序,安装完成后自动开启服务

      输入http://localhost:8080

      按着顺序,输入密钥,然后点击推荐插件,静静等待一段时间。

      

      当你进入下面这个页面的时候,就部署成功了,输入账号密码,admin的密码好像也是admin,我这里自己设置了账号Test

      

      登录账号

      2、配置环境变量

      好了,这步开始要认真看了,不然很容易GG ,先不要急着创建项目,我们先配置一些环境变量

      a、安装插件

        点击---->

        安装插件:

        build-name-setter      作用:修改构建名称

        description setter plugin   作用:修改构建目录的描述

        Email Extension Template Plugin   作用:Email模板编辑

        Locale plugin    作用:修改Jenkins默认语言

        Timestamper    作用:动态获取时间

        Upload to pgyer    作用:将APK上传到蒲公英

      b、系统设置

         点击---->

        如下图:

        Date and Time Pattern 时间的显示格式(构建参数的时候需要用到)

        环境变量分别是:

          360加固插件的根目录(这个是360加固插件的目录,本机电脑上也要配环境变量。如果你不喜欢用360,那就换成你喜欢的就可以了,注意一定要可以使用DOS命令行进行加固的插件,这里是用DOS命令行进行apk加固,如何配置账号密码和加固渠道去官网查看就可以,讲得很详细)http://jiagu.360.cn/#/global/help/164  跟着教程先本地打包一次,确定配置是否成功,再继续进行下面步骤

          SDK的根目录(目录位置不知道的可以从Android studio查看,快捷键Ctrl+shift+Alt+s)

          java根目录

        Default Language 这个是Jenkins语言设置。

        

       系统管理员的邮箱一定要设置,这是个坑,要是不设置,你的邮箱怎么配置都不会触发,Jenkins URL则是访问地址安装的时候会要求设置,我这里是设置成本机电脑ip,这样局域网内别的电脑也可以访问。

      

      下面是邮箱设置,根据如图所示设置应该没什么问题,SMTP server根据你的邮箱服务器来设置即可

      

      

      邮件模板,这个模板的信息基本够用。

    标题:
    [Jenkins构建通知]$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS! 内容: (邮件由Jenkins自动发出,请勿回复~)<br> 项目名称:$PROJECT_NAME<br> 构建编号:$BUILD_NUMBER<br> 构建状态:$BUILD_STATUS<br> 触发原因:${CAUSE}<br> 构建地址:<A HREF="${HUDSON_URL}/job/${PROJECT_NAME}/${BUILD_NUMBER}/">${HUDSON_URL}/job/${PROJECT_NAME}/${BUILD_NUMBER}/</A><br> 构建输出日志:<a href="${HUDSON_URL}/job/${PROJECT_NAME}/${BUILD_NUMBER}/console">${HUDSON_URL}/job/${PROJECT_NAME}/${BUILD_NUMBER}/console</a><br> 下载地址:<a href="https://www.pgyer.com/projectname">https://www.pgyer.com/projectname</a><br><br> 二维码下载:<img src="https://www.pgyer.com/app/qrcode/projectname"/><br> 最近修改:<br>${CHANGES, showPaths=false, format="%a:"%m"<br>", pathFormat=" - %p"}

      好了,到这里系统设置就配置完成了,点击应用,保存

       c、全局工具配置

      点击-->

      只需要配置Gradle即可,我配置的是Android Studio默认使用的Gradle

      

       到这步为止,环境的配置准备就完成了,环境配置其实挺简单,没什么复杂的地方,细心一点不要漏了地方就可以了。

       第二步:创建项目,测试构建结果

      a、创建项目

      回到首页,点击创建一个自由风格的软件项目,命名为JenkinsTestApp

      

      点击确定,进入项目配置页面

      首先配置源码管理,如果你使用我的github的源码,那么不需要输入账号密码,只需要复制git链接即可,如果是私有库,则点击add可以增加账号密码凭据,只输入username和password即可

      

      然后配置构建,选择Invoke Gradle script

      

      根据图示内容配置,gradle-4.4即刚刚在全局工具里配置的Gradle

      点击展开Tasks,然后输入

    clean
    assembleDebug
    --stacktrace
    --debug

      输入完上面内容后,展开高级内容,勾选windows一定要勾选,不然构建失败,这个选项就相当于Android Studio的Gradle的缓存目录,如果项目多,懒得勾选,则可以在第一步的系统设置中的环境变量中配置GRADLE_USER_HOME环境,本地找个文件夹即可(最好使用Android Studio的Gradle默认缓存目录)

     

      点击应用,保存,然后点击即可进行构建,如图构建成功,可以进去查看日志,或者到工作空间去查看生成的apk包,我的工作空间的目录 D:SoftwareJenkinsworkspaceJenkinsTestAppappuildoutputsapkdebug,可以看到我构建了4次才构建成功,因为第一次忘记勾选缓存目录,第二次是构建release,没有注入签名文件的参数,后面会慢慢叙说,第三次次忘记去除debug构建的signingConfigs

    嗯,到了这里,基本用Jenkins对Android项目打包是基本实现了。不是新建一份Android项目上传到git就可以打包的,需要进行一定的配置,具体自己可以查看我github上的源码,有注释也算是比较清晰。

      

      这时候你可能会想了,前面配置的环境和搭建的Email模板和360加固怎么都没用上,先不用着急,有阶段性的成功,才有继续下去的动力,想想我之前刚开始弄的时候,这部分都被搞得一脸懵,看一些博客,不是写漏了一些关键点,就是不附带参考源码,这让人很是烦躁,总是差这么一点点,然后自己慢慢找慢慢推敲,对会弄的人来说,他们的教程是都很好的,我现在回去看,一眼都能get到点,但是对初次接手Jenkins的人来说,真是很无奈,我想我这篇博客应该算是清晰的了。

      好,我们继续往下看。

      点击

       b、参数化构建

      这一部分还是很好玩的,参数构建我觉得是个比较神奇的东西,回到项目配置的General勾选参数化构建过程

      

      点击添加参数,我用到的参数如下:(这里可以自己熟悉了以后,不断地添加参数构建,完善项目)

      名称:BUILD_TYPE

      选项:debug release  (注意选项参数要回车换行)

      这个是选择release版构建还是debug版构建使用

      

      名称:JENKINS_TIME

      默认值:$BUILD_TIMESTAMP   (这是调用Jenkins环境变量的语法)

      这个是包名的时间戳,就是在环境变量里勾选的插件

      

      名称:IS_JENKINS

      默认值:true

      如描述,这个参数方便Jenkins打包或者手动打包

      

      名称:APP_VERSION  /  JENKINS_BUILD_NUMBER

      默认值:1.0.$BUILD_NUMBER  /   $BUILD_NUMBER    (调用环境变量的构建序号)

      这两个参数分别是APP的版本号和代码版本号

      

      名称:APP_STORE_FILE_DIR  /  APP_STORE_PASSWORD

      默认值:D:AndroidProjectkeyJenKinsTestKey.jks  /  kk123456

      这两个参数分别是签名文件所在的路径和签名文件的密码(签名文件生成应该不用说了,搜都能搜出一大把了)

      

      名称:APP_KEY_ALIAS  /  APP_KEY_PASSWORD

      默认值:test1  /  kk123456

      这两个参数是签名文件子文件名称和子文件密码

      

      名称:REINFORCE_FOR_360

      选项:2  1  (注意选项参数要回车换行)

      这个参数表示是否启动360加固APP

       

      名称:APK_NAME  

       默认值:JenkinsTestApp

       用于获取构建生成的包的名字,需要和重命名的包名一致,不然无法找到文件(后面有详细说明)

      

       参数配置完成,可以自己持续添加自己需要的参数,也可以自己更改参数名称,但是更改的参数名称要和Android项目中gradle.properties文件中的参数名对应,有些需要默认参数,签名文件为了安全尽量不要填写默认密码

    #是否是Jenkins打包
    IS_JENKINS = false
    #Jenkins打包时间戳
    JENKINS_TIME = ''
    #APP版本号
    APP_VERSION= 1.0.0
    #APP代码版本号
    JENKINS_BUILD_NUMBER = 1
    #APP签名文件信息
    APP_KEY_PASSWORD = ""
    APP_STORE_PASSWORD = ""
    APP_KEY_ALIAS = ""
    APP_STORE_FILE_DIR=""

      在构建中,把Tasks中的Debug改成${BUILD_TYPE}调用刚刚配置的参数,勾选Pass all job paramenters as Project properties 把参数注入到项目中

      

    点击应用,保存,会发现项目首页的立即构建变成了Build with Parameters,点击则出现右侧参数列表,选择release尝试构建。不出意外,构建成功,这里就不截图了。

      

       到此为止,参数化构建就已经部署成功了,分为debug模式和release模式,其他模式自己可以添加

       我们继续优化一下项目配置结构

      丢弃旧的构建,如图所示

      

       触发构建器

      每隔10分钟检查资源库是否有提交更新,有更新则进行构建

    */10 * * * *

      

      构建环境

       修改构建列表的名称,便于观察

    #${BUILD_NUMBER}_${BUILD_TYPE}_V-${APP_VERSION}

     

      c、360加固apk

       360加固APK是根据自己写的一个.bat文件,然后通过Jenkins调用进行加固,写的时候可以说是呕心沥血了,因为不熟练.bat的编写格式,踩了很多坑

      首先在构建中加入执行Windows批处理命令

      调用参数的方式有点区别,在Jenkins调用变量参数用$xxxx  Windows批处理命令则用%xxxxxx%

      下列调用的都是上面定义的参数,其中%WORKSPACE%是默认环境变量的 工作空间目录

    jenkins_apk_doing.bat %BUILD_TYPE% %JENKINS_BUILD_NUMBER% %APP_VERSION% %JENKINS_TIME% %REINFORCE_FOR_360% %WORKSPACE% %APK_NAME%

      

      哈哈,应该没有人会以为这一句命令代码就可以执行360加固了吧,下面开始重头戏

      找到360加固插件的根目录D:Softwarejiagu,创建一个text文档命名jenkins_apk_doing,然后把后缀改成 .bat,然后用记事本打开输入下面代码

    @echo off
    
    SET typed=%1
    SET num=%2
    SET ver=%3
    SET time=%4
    SET or=%5
    SET dir=%6
    SET projectname=%7
    
    echo param[1] =%1
    echo param[2] =%2
    echo param[3] =%3
    echo param[4] =%4
    echo param[5] =%5
    echo param[6] =%6
    echo param[7] =%7
    
    cd /d %~dp0 
    
    if %or%==1 goto todoingreinforce 
    echo.
    exit
    
    
    :todoingreinforce
    start D:Softwarejiagujavainjava -jar jiagu.jar -jiagu %dir%appuildoutputsapk\%typed%\%projectname%-%typed%-v%ver%#%num%-%time%.apk D:SoftwareStrengthenedAPK -autosign -automulpkg
    echo.
    exit   

      如果看不太懂,没关系,只要把路径改一改就可以了,注意有个地址是D:SoftwareStrengthenedAPK这是我D盘目录下的文件夹,是用来放加固好的APK文件的,如果你看了360加固助手官方文档,应该基本看得懂start后面的语句,也就是DOS命令下执行加固的命令,有了这个文件以后就可以进行360加固打包了,去试一下吧,构建完以后在D:SoftwareStrengthenedAPK(需要手动创建文件夹)目录下应该是有加固好的apk文件了

      

       d、将APK包上传到蒲公英https://www.pgyer.com

         注册账号,登录

        点击--->

       获取API KEY 和 USER KEY

      

      然后将Key填入对应的空格

      scandir:${WORKSPACE}appuildoutputsapk${BUILD_TYPE}

      file wildcard:${APK_NAME}-${BUILD_TYPE}-v${APP_VERSION}#${JENKINS_BUILD_NUMBER}-${JENKINS_TIME}.apk

      

      点击应用,然后保存构建,即可上传到蒲公英,就是这么简单,构建成功后查看日志

      

      可以获取应用页面,拿到二维码链接和下载链接,也可以去蒲公英查看

      蒲公英会生成一个专属页面,可以查看标签去获取二维码链接和下载链接

      

      拿到二维码链接和下载链接以后,就可以修改描述页面和构建名称了

      在构建和操作中添加Set build description

    <img  src="https://www.pgyer.com/app/qrcode/xxxx"/> <br>下载地址:<a href="https://www.pgyer.com/app/qrcode/xxxx">APK下载链接</a><br>

      

      现在再去进行构建,你就会发现有很美观的界面了,看吧,已经有二维码了,可以直接扫码安装测试

      

      e、构建完成后发邮件

      在构建后操作添加Editable Email Notification,默认部分不需要更改,因为内容在配置系统设置的时候已经配置好,如果要动态增加接收人的邮箱,在Project Recipient List 中加入邮箱即可用 ,隔开,点击底部的Advanced Settings设置触发条件。即可发送邮件到指定邮箱。可以根据自己的需要配置邮箱触发事件,如果不配置则不会发送邮箱

      

      

      点击应用保存,然后进行构建,一段时间后,就能收到邮件了,如果你是局域网电脑打开邮件,就可以直接访问构建日志和构建目录了,这样其他开发者也可以看到结果,不用自己去看是否构建完成。点击构建就可以喝咖啡了(虽然我不喝咖啡)。

      

      好了,到这里全部内容就写完了,写了大概半天的时间,出博客挺快的,自己琢磨了大概一周,遇到各种坑,希望对大家有帮助,大家看完试着搭建一下,然后有坑可以留言一下,可以把构建次数发一下,我看下你们构建了几次才完全成功,看吧,我重新构建都构建了20次。说明确实很多东西容易忽略,Jenkins搭起来以后就不需要自己去处理签名文件什么的,一次搭建以后都方便用,顺带提一下,蒲公英免费版做测试还是很不错的,要是商用,就自己测试一下吧,我是有时候会上传失败,多点几次也可以上传上去。

      补充:在AndroidStudio上使用Jenkins

      第一步:搜索并安装插件

      

      重启后右侧会显示出插件

      

      点击扳手设置信息,获取Crumb Data的方法在浏览器中输入http://10.0.0.172:8080/crumbIssuer/api/xml?tree=crumb 换成自己的ip地址,即可获取

      

      配置完后应用则右侧会出现jenkins界面,顶部图片,第一个表示刷新,第二个选中一个项目后展开,第三个是执行构建,第四个是排序变更

      

      方便的操作来了,点击第三个图标,立即构建则会弹出构建参数页面,配置好参数点击OK,就可以去为所欲为啦。很方便吧。

     

       

     版权所有,如有转载请注明出处 https://www.cnblogs.com/pmokj/p/9809241.html ,谢谢

  • 相关阅读:
    WCF 第八章 安全 确定替代身份(中)使用AzMan认证
    WCF 第八章 安全 总结
    WCF 第八章 安全 因特网上的安全服务(下) 其他认证模式
    WCF Membership Provider
    WCF 第八章 安全 确定替代身份(下)模仿用户
    WCF 第八章 安全 因特网上的安全服务(上)
    WCF 第九章 诊断
    HTTPS的七个误解(转载)
    WCF 第八章 安全 日志和审计
    基于比较的排序算法集
  • 原文地址:https://www.cnblogs.com/pmokj/p/9809241.html
Copyright © 2011-2022 走看看