你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發基礎 >> jenkins+xcode+蒲公英實現ipa自動化打包

jenkins+xcode+蒲公英實現ipa自動化打包

日期:2017/8/17 10:05:45      編輯:IOS開發基礎

原文

一、簡述

公司特意配了一台mac機給測試用,並且打包發布這些功能都要在這台測試機上完成,老大特意讓我去研究一下jenkins實現自動化打包,好吧,那就去看吧。

百度搜一下,Mark一下簡介:jenkins是一個廣泛用於持續構建的可視化web工具,持續構建即各種項目的”自動化”編譯、打包、分發部署。jenkins可以很好的支持各種語言(比如:Java, c#, PHP等)的項目構建,也完全兼容ant、maven、gradle等多種第三方構建工具,同時跟svn、Git能無縫集成,也支持直接與知名源代碼托管網站,比如github、bitbucket直接集成。

二、Jenkins的安裝

1、Jenkins本身是用java語言開發的,所以安裝Jenkins之前,要保證你的電腦有jdk,如果沒有,請到如下鏈接下載:http://rj.baidu.com/soft/detail/25851.html?ald ,另外建議git、ant、maven、gradle、groovy等工具也一並安裝好,方便與這些構建工具集成。

2、進入Jenkins的官網 https://jenkins.io/index.html ,然後下載並安裝Jenkins。此處有兩種安裝方法,使用命令行安裝和使用jenkins.pkg安裝,建議使用後一種

3、下載

1)點擊鏈接進入官網

2)點擊download

3)我選擇的是Mac OS X

4)下載完成後,得到 jenkins-2.19.4.pkg 文件,點擊直接安裝即可,在下圖中,選擇自定,取消 start at boot as“jenkins”,一般不需要自啟動

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

如果打開沒有反應,啟動不了,就在浏覽器直接打開:http://localhost:8080/ ,就可以進入到上面界面了。

6)觀察圖中的路徑,然後打開你的終端,執行如下命令(注意:該命令僅在安裝Jenkins的過程中執行才有效;安裝成功後,再在終端中執行是無效的):

7)然後將我們得到的password輸入到“Administrator password“中,即可進入如下界面,接著安裝一些建議的插件,安裝過程中,有的插件可能會安裝失敗,可以跳過,之後需要對應的插件時,再重新安裝即可,具體後面會講到:

8)插件安裝完成後,可能會卡在如下界面,不會自動跳轉,刷新下界面即可:

插件


9)在刷新後的界面中注冊,輸入用戶名和密碼,如下:


10)注冊成功後,點擊”Start using Jenkins”

三、Jenkins的使用

1、安裝成功後,會進入到如下界面:

jenkins首頁

2、新建項目

1)點擊新建,創建一個項目

2)輸入項目名稱,並選擇構建一個自由風格的軟件項目,點擊下方的OK。

3)General 中建議寫上一些項目描述,這裡啟用項目安全是指管理員對對應登錄用戶設置的一些權限。

4)這裡設置的是構建項目(即用jenkins打包ipa時)的參數設置。

具體的使用是在項目頁點擊

然後進入頁面,BR就是剛剛設置的參數名稱,master就是你對應項目的分支,在所有的設置都設置好了時就可以點擊開始構建。

5)由於我們在配置jenkins用到了JDK,這裡對應的是JDK的名稱,第二個勾選項是配置的打包的項目關聯的mac電腦名稱(自己設置)。

具體的在首頁中可看到

點擊進去

6)源碼管理,公司的項目是放在gitlab上的,這裡Repository URL填的是項目的路徑,Credentials添加的是gitlab上登錄的用戶名和密碼, Branch Specifier (blank for 'any')這裡就是上面提到的構建時的分支設置參數。

輸入對應的用戶名和密碼後,並在Credentials中選擇該帳號。

7)由於項目是在另一台mac機上構建的,則這裡配置身份驗證令牌。

8)構建設置

在下圖的Target中,保證該Target和Xcode項目工程中的Target同名。建議勾選Clean before build?,並將Configuration設為Release。勾選Pack application and build .ipa?,同時為即將輸出的ipa文件命名並指定輸出路徑。

? Target:就是我們在項目中建立的Target

如果不清楚有哪些Target的情況下可以到xcodeproj或xcworkspace的目錄下運行如下命令 xcodebuild -list 即可看到Targets,其中是所有可以用的target。

? Clean before build?:這個是在編譯前是否clean一次,一般是選擇YES。

? Configuration: 對應的是xcodebuild命令裡的-configuration的參數,可選項為[Debug、Release],一般都填Debug,這樣就可以將打包後的ipa交付給測試人員測試

? Pack application and build .ipa?:這個是在結束是是否要產生對應的ipa文件,一般都是打上勾的

? .ipa filename pattern:這個配置項是配置所產生ipa的文件名,其中有一些可用的全局變量

其中${VERSION}和${SVN_REVISION}都是可以直接用的環境變量,如果想看還有哪些環境變量而已用可以點擊在Execute shell下方有個 "See the list of available environment variables"進行查看,這裡就不進行列出來了。

? Output directory:這個配置了ipa的輸出目錄(默認Build output directory所在路徑,見下圖)

Code signing & OS X keychain options (簽名的設置)

Codee Signing Identity:所使用的簽名

如果不知道具體填什麼可以到鑰匙串訪問中尋找 iPhone Distribution:開頭的所使用的證書,然後選中後點擊右鍵選擇顯示簡介,在彈出的窗口中找到常用名稱,將其復制填入即可。 或者可以在命令行中輸入security find-identity -p codesigning -v來查找iPhone Distribution:開頭的簽名即可,找到後將雙引號中的內容復制。

? Unlock Keychain?: Jenkins需要訪問Keychain,獲取響應的key,所以需要授權。選上就自動解鎖。需要提供密碼。

? Keychain path: 默認都是${HOME}/Library/Keychains/login.keychain

? Keychain password: 鑰匙串的密碼

注意:這個可以在 系統管理-》系統設置-》Xcode-》BuilderKeychains-》添加,在配置中可以選取

Advanced Xcode build options(xcodebuild命令的配置)

? Clean test report?:這個是如果要用到xcode測試的時候才用到,意思就跟英語一樣

? Xcode Scheme File: 關於這個其實對應的就是xcodebuild命令中的-scheme的參數

如果您不知道要填寫什麼的話, 可以通過xcodebuild -list來查詢。是不是覺得這條命令很熟悉,沒錯前面查找target的時候也是用這個命令!

? SDK:這裡是xcodebuild命令中的-sdk的參數,指定編譯和打包的sdk號。如果不懂可以填寫哪些可以通過xcodebuild -showsdks來查看。

? SYMROOT:該變量是編譯和打包產生結果的輸出目錄( .a, .zip, .ipa, .hmap等產生文件的位置),其中該目錄其實是包括了CONFIGURATION BUILD DIR和OBJROOT這兩個目錄,默認的路徑是所編譯的xcodeproj所在目錄,如主項目和POD項目整合後,則會在主項目的和POD項目的XCODEPROJ所在目錄

如果在指定了OBJROOT的位置後,編譯過程中產生的文件不會在該目錄體現 如果在指定CONFIGURATION_BUILD_DIR的位置後,該變量則變成無效化

? Custom xcodebuild arguments:這個就是xcodebuild命令中的指定buildsetting的命令的參數,至於可以指定哪些參數請不要問我,可以找度娘或者谷哥

? Xcode Workspace File:該配置是指明了xcodebuild中的-workspace的變量,其實就是如果您需要編譯打包一個workspace時候的時候指定那個後綴名為xcworkspace的文件, 如果指定了該配置,那麼Xcode project file配置項將無效

? Xcode Project Directory:該目錄是指明了包含xcodeproj文件的目錄(這個我是沒用用到如果用了該參數可能最開始第一步的構建就沒用了------不過我還沒證實,歡迎小伙伴證實後告訴我)

? Xcode Project File: 如果需要構建一個project而不是一個workspace的話則指定文件的名稱(後綴名為xcodeproj的文件)

? Build output directory:該參數只是指明了最終需要產生的動態包,ipa,app等文件默認路徑為所編譯的xcodeproj所在目錄,如主項目和POD項目整合後,則會在主項目的和POD項目的XCODEPROJ所在目錄(編譯產生的相關文件所在目錄,默認為$SYMROOT/$CONFIGURATION)

? 值得說的是有一個參數也是挺常用的就是OBJROOT,該參數是產生 .a和 .hmap文件的目錄,默認路徑為所編譯的xcodeproj所在目錄,如主項目和POD項目整合後,則會在主項目的和POD項目的XCODEPROJ所在目錄,關於OBJROOT、CONFIGURATION BUILD DIR以及SYMROOT三個路徑之間的關系大家可以去查看官方的文檔。

3、添加上傳到第三方分發平台(這裡選擇蒲公英平台作為例子)

蒲公英上的User Key

uKey="41ed0a30a0cdf9296501232e69b5a66b"

蒲公英上的API Key

apiKey="ece94057dd3d5bd3d570ae509a0c3e3d"

要上傳的ipa文件路徑

IPA_PATH="${WORKSPACE}/build/PPCSDKTest.ipa"

密碼

PASSWORD="123456"

MSG=git log -1 --pretty=%B

執行上傳至蒲公英的命令

echo "++++++++++++++upload+++++++++++++"

curl -F "file=@${IPA_PATH}" -F "uKey=${uKey}" -F "_api_key=${apiKey}" -F "updateDescription=${MSG}" -F "password=${PASSWORD}" http://www.pgyer.com/apiv1/app/upload

到此為止關於Jenkins整合Xcode的配置項並自動上傳到蒲公英差不多就說好了。那麼可以稍微構建一下項目試試了,構建完項目後,你就會發現測試人員不需要天天來煩你,再也不需要聽到“開發狗,趕緊給我安裝一個最新的版本”了。

作者:Coffee_LaFa

鏈接:http://www.jianshu.com/p/6bab38e569a5

來源:簡書

著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved