Mac下使用Jenkins打包IOS和安卓APP


        在項目中,依賴開發手動打包效率低且版本控制不穩定。 測試人員需要掌握獨立環境部署能力才是正途。

一、選擇Mac系統的原因

      因為要打包IOS的APP, IOS的編譯環境是Xcode,這個需要安裝在Mac系統上。  所以如果要編譯IOS並打包,則要使用Mac系統。

 

二、Jenkins分布式構建

  1、在使用jenkins自動構建時,我們可能包含服務端、前端、客戶端APP(安卓和IOS)等編譯構建。 服務端語言又分為java、.net、.net core 、C++等,每種編程語言的編譯環境及方法均不一樣。

    如果在一個服務器上搭建環境,就會很雜亂。需要編譯構建的程序多了,構建服務器本身的資源使用也會成為瓶頸。  所以后期發展成熟,建議使用分布式構建。  jenkins支持Master/Slave的主從架構來實現。

  2、主從架構

    1、jenkins服務器為主節點,處理調度構建作業。

    2、主機進行構建任務分發,從機來具體執行

    3、監視從機節點,記錄從機的構建結果

   主從最終實現的效果圖:     (本期主要講述APP打包,主從架構概過,感興趣的同學可以自行百度實踐)

 

三、APP打包環境准備

  1、jenkins環境 (有文件安裝和命令行安裝,推薦使用命令行安裝)

    a、安裝jenkins前需要安裝jdk,版本1.8以上

    b、文件安裝:官網下載 https://jenkins.io/zh/download/  (根據搭建服務器環境自由選擇,本次我們需要構建IOS的IPA包,選擇 Mac os)

      

        命令安裝:

            1、先需要安裝軟件包home brew,直接在終端對話框中敲    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

            2、查看brew是否安裝成功:    brew -v

              能顯示版本號即安裝成功 

            3、直接命令行安裝jenkins  : brew install jenkins    (因為我已安裝,所以顯示此提示)

         c、在瀏覽器中輸入http://localhost:8080,首次安裝應該會出現如下界面,這里需要你去找到Jenkins的初始密碼。  密碼在如下的 紅色提示路徑下

      

           d、后續都采用默認安裝,即可完成安裝 

 

  2、xcode下載安裝  (xcode可以直接在appstore中下載及安裝,此文件有點大  有接近10g)

    

  

  3、安卓打包工具 android-sdk安裝:

    a、Android-sdk 資源站點 http://www.androiddevtools.cn  ,一直下一步安裝

     

    b、android-sdk安裝完成后,找到android-sdk/tools 安裝路徑,雙擊 android程序,喚出SDK Manager

     

    c、更新sdk組件  (由於谷歌被牆了,所以某些sdk無法更新,需要設置國內鏡像站點)    

      Mac頂部菜單點擊Android SDK Manager -> Preferences

      HTTP Proxy Server填寫:mirrors.neusoft.edu.cn

      HTTP Proxy Port填寫:80

      勾選Force https:// ,然后點擊“Close”

    

      Mac頂部菜單點擊Tools -> Manage Add-on Site,選擇右側“User Defined Sites”:    

        把下面這堆網址:

            http://mirrors.neusoft.edu.cn/android/repository/addon-6.xml 
            http://mirrors.neusoft.edu.cn/android/repository/addon.xml    
            http://mirrors.neusoft.edu.cn/android/repository/extras/intel/addon.xml    
            http://mirrors.neusoft.edu.cn/android/repository/sys-img/android-tv/sys-img.xml    
            http://mirrors.neusoft.edu.cn/android/repository/sys-img/android-wear/sys-img.xml    
            http://mirrors.neusoft.edu.cn/android/repository/sys-img/android/sys-img.xml    
            http://mirrors.neusoft.edu.cn/android/repository/sys-img/google_apis/sys-img.xml    
            http://mirrors.neusoft.edu.cn/android/repository/sys-img/x86/addon-x86.xml    
            http://mirrors.neusoft.edu.cn/android/repository/addons_list-2.xml    
            http://mirrors.neusoft.edu.cn/android/repository/repository-10.xml

         全手動New加進去,然后就可以下載了,點擊

         

 

四、jenkins中環境變量配置

  1、Android環境變量配置 ,在 系統管理-系統設置中添加 Android_Home

      

 

    

  2、gradle配置

    在 系統管理-全局工具配置中 添加一個gradle版本。  我們編譯使用的V4.6 

 

 

 

五、Android打包工程配置

  1、創建一個自由風格的工程

    

  2、舊的構建數據丟棄 

       

  3、源碼拉取,可以選擇svn或者git,看項目使用的配置管理工具

          

  4、設置構建觸發策略,我這里選擇的定時觸發(6點和12點自動構建打包)

        

  5、編譯構建並將編譯的包放到共享目錄 

        1、測試環境或線上環境的編譯任務assembleBetaDebug,可以咨詢安卓開發。(如果開發沒有設置打包渠道,可以手動在代碼路徑 app/build.gradle下加入此代碼)

        

 

    

        2、添加一個Execute shell,將生成的apk包轉移到共享目錄下。  (大多人使用的windows的辦公電腦,取包不方便,放到共享目錄后 取包很方便了)

        

cp ./app/build/outputs/apk/beta/debug/app-beta-debug.apk /Users/mjb/Desktop/CI/android_new_trunk.apk
mv ./app/build/outputs/apk/beta/debug/app-beta-debug.apk /Users/mjb/Desktop/CI/android/trunk/xxx-${BUILD_ID}.apk

 

  

  

    放到共享目錄后,取包方便很多 、    另外也可以考慮將包放到蒲公英平台或者生成固定二維碼,直接下載。

 

 

六、IOS打包工程配置

  1、前面配置省略,跟安卓類似

    2、使用shell腳本編譯  (jenkins對於xcode插件兼容性不好,所以建議調用shell執行xcodebuild腳本來編譯)

     第一個的shell是編譯xcodebuild,第二個shell是變換共享目錄

    

 

    

#!/usr/bin/env bash
#xcodebuild clean -workspace /Users/mjb/.jenkins/workspace/mjd-app-ios/Sales.xcworkspace -sdk iphoneos -scheme "Sales" -configuration "Debug" archive #Release
xcodebuild -archivePath "/Users/mjb/.jenkins/workspace/mjd-app-ios/build/Sales.xcarchive" -workspace /Users/mjb/.jenkins/workspace/mjd-app-ios/Sales.xcworkspace -sdk iphoneos -scheme "Sales" -configuration "Debug" archive
xcodebuild -exportArchive -archivePath "/Users/mjb/.jenkins/workspace/mjd-app-ios/build/Sales.xcarchive" -exportPath "/Users/mjb/.jenkins/workspace/mjd-app-ios/build/Sales_debug" -exportOptionsPlist '/Users/mjb/.jenkins/workspace/mjd-app-ios/build/ExportOptions.plist' -allowProvisioningUpdates

 

注意,在編譯前需要將這兩個文件復制到對應目錄 

 

最后實施完成的效果 :

安卓和IOS都能成功打包 apk和ipa了 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

              

 

 

 

 

 

 

    


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM