Mac Jenkins+fastlane 簡單幾步實現iOS自動化打包發佈 + jenkins節點設置

最近在使用jenkins 實現ios自動化打包發佈蒲公英過程實踐遇到了一些坑,特地記錄下來方便有須要的人。html

進入正題:java

1、安裝Jenkinsandroid

1.Mac上安裝Jenkins 遇到到坑ios

由於 Jenkins 的pkg安裝包默認安裝位置爲shared文件夾,後續會遇到權限問題,因此放棄pkg安裝。(說明:也許是安裝時選擇了本機全部用戶可用的緣由)git

若是已經使用pkg文件方式安裝了,卸載方法:找到該文件 /Library/Application Support/Jenkins/Uninstall.command 雙擊執行卸載。shell

 

2.推薦安裝方式json

先設置好Jenkins的主目錄
用root用戶登陸 編輯profile文件:vi /etc/profile 在最後加入:export JENKINS_HOME=/User/your path/ 保存,退出後執行:source /etc/profile 讓配置生效

官網 http://mirrors.jenkins.io/war-stable/ 直接下載war包;api

放到我的目錄  /Users/yourname/jenkins xcode

 

cd 到存放的目錄 終端之執行命令服務器

java -jar jenkins.war --httpPort=8080 

看到 如下信息說明安裝完成

信息: Jenkins is fully up and running 

翻看安裝過程的log 能夠找到激活的密碼 (保存一份)

<若是沒有看到密碼,說明沒有卸載徹底,那麼執行

sudo rm -rf /var/root/.jenkins ~/.jenkins

在執行一次安裝命令>

 

3.解鎖

 

 

 4.解決離線問題

新開一個tab 網頁 輸入網址http://localhost:8080/pluginManager/advanced。 這裏面最底下有個【升級站點】,把其中的連接改爲http的就行了,http://updates.jenkins.io/update-center.json提交! 而後關閉jenkins(關閉安裝Jenkins的終端便可),再啓動Jenkins(終端 java -jar jenkins.war ,須要再次粘貼密碼),這樣就能正常聯網了。

5.安裝推薦的插件

6.建立管理員用戶 

輸入信息便可 ,完成後進入 jenkins 系統管理頁面,先到這裏

2、安裝  fastlane

fastlane這裏用來自動編譯打包iOS,它還能夠一鍵上自動發佈AppStore,製做app 截圖等,fastlane工具庫強大得超出你想象;更多關於fastlane的權威介紹用法參考 https://docs.fastlane.tools  中文資料可參考 https://www.jianshu.com/p/19ae8cc865b0

1. xcode-select --install

2. sudo gem install fastlane -NV  或者 brew cask install fastlane

 

3、配置 jenkins

一、新建一個任務

 

 2.設置源碼獲取方式 --SVN 

 

   1.填入源碼svn地址 2.添加獲取源碼使用的帳戶密碼 3.選擇剛填寫帳戶 

3.設置獲取代碼更新的輪詢方式 每隔5分鐘一次,有更新時自動獲取。點擊?號能夠查看相關幫助信息

完成以上步驟 保存,手動構建 目的是先獲取代碼

 

4.初始化 fastlane 

cd 項目所在目錄 

執行 fastlane init  (選擇4)

Fastlane 會自動在 App 目錄中生成 fastlane 目錄

安裝上傳蒲公英用的插件

執行 fastlane add_plugin pgyer

編輯 配置文件 fastlane/Fastfile  自定義lane 函數: beta 完成編譯打包.ipa 及上傳發布

 
  1. 以上的 api_key 和 user_key,請開發者在本身帳號下的 應用管理 - App概述 - API 中能夠找到,並替換到以上相應的位置。
  2. 在 Xcode 8.3 和 Xcode 8.3 之後的版本中,對於 build_app 的 export_method 的值,須要根據開發者的打包類型進行設置,可選的值有:app-storead-hocdevelopmententerprise。對於 Xcode 8.3 如下的版本,則不須要設置 export_method
  3. 參考:https://www.pgyer.com/doc/view/fastlane

4.構建shell腳本(自動編譯打包發佈的腳本)

編輯寫腳本:調用前面寫的 beta 方法

 

 

 保存,能夠手動 當即構建測試。祝君好運!!!

 可能出報錯:fastlane comand not find ,在Jenkins 系統管理-系統設置-全局屬性-環境變量 增長:鍵 PATH 值: 終端輸出值(echo $PATH)

4、發佈成功後的郵件通知設置 參考:https://blog.csdn.net/u013066244/article/details/78665075?from=singlemessage&isappinstalled=0

建議只配 郵件插件,若是同時配置了系統默認的郵箱設置項 會致使自定義發件模版不起做用

1.設置發件服務器信息  <管理員郵箱須要與受權發件人相同>

 

二、設置全局收件人變量

三、項目中設置郵件 構建後的操做--添加郵件通知

選擇郵件出發方式

 

添加一個Recipient List 

 

高級中設置收件人及郵件內容信息

郵件內容模版

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>${PROJECT_NAME}-第${BUILD_NUMBER}次構建日誌</title>  
</head>  
  
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  
    offset="0">  
    <table width="95%" cellpadding="0" cellspacing="0"  
        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">  
        <tr>  
            <td>(本郵件是程序自動下發的,請勿回覆!)</td>  
        </tr>  
        <tr>  
            <td><h2>  
                    <font color="#0000FF">構建結果 - ${BUILD_STATUS}</font>  
                </h2></td>  
          </tr>
          <tr>
              <td><h4>  
                    <font color="#0000FF">安裝地址:http://www.pgyer.com/****</font>  
                </h4></td>  
        </tr>  
        <tr>  
            <td><br />  
            <b><font color="#0B610B">構建信息</font></b>  
            <hr size="2" width="100%" align="center" /></td>  
        </tr>  
        <tr>  
            <td>  
                <ul>  
                    <li>項目名稱 : ${PROJECT_NAME}</li>  
                    <li>構建編號 : 第${BUILD_NUMBER}次構建</li>  
                    <li>SVN版本 : ${SVN_REVISION}</li>  
                    <li>觸發緣由: ${CAUSE}</li>  
                    <li>構建日誌: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>  
                    <li>構建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>  
                    <li>工做目錄 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>  
                    <li>項目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>  
                </ul>  
            </td>  
        </tr>  
        <tr>  
            <td><b><font color="#0B610B">Changes Since Last  
                        Successful Build:</font></b>  
            <hr size="2" width="100%" align="center" /></td>  
        </tr>  
        <tr>  
            <td>  
                <ul>  
                    <li>歷史變動記錄 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li>  
                </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat="    %p"}  
            </td>  
        </tr>  
        <tr>  
            <td><b>Test Informations</b>  
            <hr size="2" width="100%" align="center" /></td>  
        </tr>  
        <tr>  
            <td><pre  
                    style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">Total:${TEST_COUNTS,var="total"},Pass:${TEST_COUNTS,var="pass"},Failed:${TEST_COUNTS,var="fail"},Skiped:${TEST_COUNTS,var="skip"}</pre>  
                <br /></td>  
        </tr>  
        <tr>  
            <td><b><font color="#0B610B">構建日誌 (最後 100行):</font></b>  
            <hr size="2" width="100%" align="center" /></td>  
        </tr>  
        <tr>  
            <td><textarea cols="80" rows="30" readonly="readonly"  
                    style="font-family: Courier New">${BUILD_LOG, maxLines=100}</textarea>  
            </td>  
        </tr>  
    </table>  
</body>  
</html>  

 

附:gitlab方式 獲取源碼

 首次 設置Git的 user name 和email

  在終端 執行

git config --global user.name "your gitlab name"
git config --global user.email "XXXXX@XX.com"

 生成密鑰

ssh-keygen -t rsa -C "XXXXX@XX.com"

 不設置密碼

連續三個回車
最後獲得兩個文件:id_rsa和id_rsa.pub 
SSH 公鑰默認儲存在帳戶的主目錄下的 ~/.ssh 目錄

複製公鑰 

pbcopy < ~/.ssh/id_rsa.pub

 添加到gitlab

 

因爲上面生成的密鑰沒有設置密碼 因此在Jenkins 獲取gitlab源碼時就不要設置了

 

 

Jenkins 節點配置

使用網絡上的其餘機器執行job,例如安裝Jenkins本級沒有android環境 ,那麼可使用網絡上的其餘機器執行android任務;

直接上圖

其中登錄憑證填寫須要鏈接的節點機器的用戶名與登陸密碼

節點節點機器爲mac 勾選遠程登陸。

相關文章
相關標籤/搜索