Android打包喝咖啡系列(Windows版)html
這篇博客主要講述的內容:java
一、windows上部署Jenkins https://jenkins.iogit
二、基於SVN或Git https://github.com/Codetroupe/JenKinsTestAPPgithub
三、Android項目參數化自動構建windows
四、自動將APK上傳至蒲公英 https://www.pgyer.com
api
五、自動發Email到指定郵箱提示構建結果瀏覽器
六、自動本地360插件加固apk包http://jiagu.360.cn 緩存
下面開始正式內容,慣例先上一張界面圖:安全
第一步:windows上部署Jenkins並配置環境服務器
一、打開官網https://jenkins.io
點擊download,建議下載左邊的穩定版,右邊的踩過坑,莫名其妙報了個錯,而後重裝。選擇windows版下載,獲得一個安裝程序,安裝完成後自動開啓服務
按着順序,輸入密鑰,而後點擊推薦插件,靜靜等待一段時間。
當你進入下面這個頁面的時候,就部署成功了,輸入帳號密碼,admin的密碼好像也是admin,我這裏本身設置了帳號Test
登陸帳號
二、配置環境變量
好了,這步開始要認真看了,否則很容易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="\n\t- %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:\Software\Jenkins\workspace\JenkinsTestApp\app\build\outputs\apk\debug,能夠看到我構建了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:\AndroidProject\key\JenKinsTestKey.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:\Software\jiagu,建立一個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:\Software\jiagu\java\bin\java -jar jiagu.jar -jiagu %dir%\app\build\outputs\apk\%typed%\%projectname%-%typed%-v%ver%#%num%-%time%.apk D:\Software\StrengthenedAPK\ -autosign -automulpkg echo. exit
若是看不太懂,不要緊,只要把路徑改一改就能夠了,注意有個地址是D:\Software\StrengthenedAPK\這是我D盤目錄下的文件夾,是用來放加固好的APK文件的,若是你看了360加固助手官方文檔,應該基本看得懂start後面的語句,也就是DOS命令下執行加固的命令,有了這個文件之後就能夠進行360加固打包了,去試一下吧,構建完之後在D:\Software\StrengthenedAPK\(須要手動建立文件夾)目錄下應該是有加固好的apk文件了
d、將APK包上傳到蒲公英https://www.pgyer.com
註冊帳號,登陸
點擊--->
獲取API KEY 和 USER KEY
而後將Key填入對應的空格
scandir:${WORKSPACE}\app\build\outputs\apk\${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,就能夠去隨心所欲啦。很方便吧。
版權全部,若有轉載請註明出處 http://www.javashuo.com/article/p-krbpfsit-da.html,謝謝