Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

蘆葦科技App技術團隊發表於2018-12-08

一、簡述

Jenkins 是一個廣泛用於持續構建的視覺化 web 工具,持續構建即各種專案的”自動化”編譯、打包、分發部署。Jenkins 可以很好的支援各種語言(比如:java, c#, php等)的專案構建,也完全相容 ant、maven、gradle 等多種第三方構建工具,同時跟 svn、git 能無縫整合,也支援直接與知名原始碼託管網站,比如 github、bitbucket 直接整合。

二、Jenkins 的安裝

1、Jenkins 本身是用 Java 語言開發的,所以安裝 Jenkins 之前,要保證你的電腦有 jdk,如果沒有,可到如下連結下載安裝:www.oracle.com/technetwork…

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

2、進入 Jenkins 的官網 jenkins-ci.org/ ,選擇 Mac 直接安裝。安裝成功後。開啟 http://localhost 檢視是否可正常訪問。

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

3、安裝完成後,會直接跳轉到如下介面,如果沒有跳轉或者跳轉失敗,可通過執行如下命令 "open /Applications/Jenkins/jenkins.war " 進入到該介面:

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

4、按照提示,找到 /Users/Shared/Jenkins/Home/ 這個目錄下,這個目錄雖然是共享目錄,但是有許可權的,非 Jenkins 使用者 /secrets/ 目錄是沒有讀寫許可權的。

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

5、修改許可權開啟 initialAdminPassword 檔案,複製出密碼,就可以填到網頁上去重置密碼了。如下圖

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

6、安裝外掛,外掛安裝完成後,可能會卡在如下介面,不會自動跳轉,重新整理下介面即可:

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發
7、在重新整理後的介面中註冊,輸入使用者名稱和密碼,如下:

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

三、Jenkins 的使用

1、由於安裝過程中,有些外掛可能會安裝失敗,通過如下方式檢查所需的外掛是否安裝成功。 通過“系統管理->管理外掛->已安裝“,檢查如下所需的外掛是否安裝成功: <1> Xcode integration ( Xcode 外掛) <2> Credentials Plugin (簽名證照管理外掛) <3> Keychains and Provisioning Profiles Management (簽名證照管理外掛) <4> GitLab Plugin <5> Gitlab Hook Plugin <6> Post-Build Script Plug-in <7> Email Extension Plugin

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

2、構建專案

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

點選新建好的專案,進來配置一下 General 引數。

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

接著設定原始碼管理。

由於現在用到的是 GitLab,先配置 SSH Key,在 Jenkins 的證照管理中新增 SSH。在 Jenkins 管理頁面,選擇 “Credentials” ,然後選擇 “Global credentials (unrestricted)” ,點選 “Add Credentials”,如下圖所示,我們填寫自己的 SSH 資訊,然後點選 “Save” ,這樣就把 SSH 新增到 Jenkins 的全域性域中去了。

重點!!重點!!

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

構建環境設定 iOS 打包需要簽名檔案和證照,所以這部分我們勾選 “Keychains and Code Signing Identities” 和 “Mobile Provisioning Profiles”。 這裡我們又需要用到 Jenkins 的外掛,在系統管理頁面,選擇 “Keychains and Provisioning Profiles Management”。

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發
點選 choose File 並上傳 login.keychain 地址: /Users/ 管理員使用者名稱 /Library/keychains/login.keychain. 上傳成功後會出現:

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

點選 Add Code Signing Identity 新增對應的簽名

3.上傳 Provisioning Profiles 檔案,Xcode 的 profile 存放在~/Library/MobileDevice/Provisioning Profiles/ 中

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

4、在系統管理->系統設定->Xcode Builder 中設定相關證照

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

五、回到專案配置->構建

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

六、構建成功後使用 fir 上傳

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

關於 fir token 的獲取,可以登入 fir, 進入個人中心生成 token

構建

返回專案首頁,點選構建即可自動化打包上傳

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

如果構建失敗,可以在構建項的 Console Output 中檢視構建資訊

Jenkins + GitLab + Xcode + Fir 實現iOS自動打包和分發

相關文章