天天看點

jenkins整合Xcode詳解

關于Jenkins整合XCode最開始的配置項就行述說了。這裡主要是針對XCode的配置項進行詳細的叙述,幫助小夥伴們快速整合XCode進行編譯和打包。

jenkins整合Xcode詳解

首先關于

xcodeproj

xcworkspace

由于我們是多人開發而為了解決

xcworkspace

xcodeproj

多人開發會導緻沖突的情況,我們在上傳到SVN(或

Git

)都是不上傳這兩個字尾名的檔案。

是以在我Jenkins的建構項中第一個就是一個Shell腳本,目的是将配置項拷貝到Jenkins的目錄下: 

jenkins整合Xcode詳解

然後就開始了XCode的配置

1.General Build Setting

jenkins整合Xcode詳解
  • 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所在路徑,見下圖)

2.Code signing & OS X keychain options(簽名的設定)

jenkins整合Xcode詳解

* 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: 鑰匙串的密碼

3. Advanced Xcode build options(xcodebuild指令的配置)

這部分的配置都是xcodebuild裡面的參數的配置:

jenkins整合Xcode詳解
  • 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三個路徑之間的關系大家可以去檢視官方的文檔。

繼續閱讀