Jenkins持續集成實戰筆記

更新于2016.02.24:
1.No scheme問題的解決
2.Code Sign Error問題的解決
3.關于.ipa打包的問題解決方案
2016.02.25 ->Homebrew
2016.02.26 ->Fir.im以及蒲公英

安裝Jenkins

點擊Jenkins進入Jenkins官網,右邊有個mac os x點擊下載。
下載之后會有個jenkins.war包(后臺服務),雙擊打開會提示

需要有jdk才能使用此工具。

點擊更多信息進入頁面選擇JDK,然后會進入此頁面Java SE Development Kit 8 Downloads

選中Accept License Agreement授權,然后選擇Mac OS X x64下載dmg文件。

安裝好JDK之后,直接點擊jenkins.war運行或者使用命令行java -jar jenkins.war運行,然后瀏覽器訪問http://localhost:8080/即可進入Jenkins界面。關于Jenkins的一些配置詳情可以參考Starting and Accessing Jenkins

安裝插件

插件管理

點擊系統管理->插件管理->Tab搜索Xcode,勾選下載安裝,然后重啟就可以使用了。
如果你想集成Github的Pull Request,需要安裝Github PluginGitHub pull request builder plugin,還想使用Testflight就需要再安裝git pluginTestfilght plugin

新建Job

新建一個自由風格的軟件項目

一般會勾選丟棄舊的構建,這樣會清理build文件夾。

源碼管理

如果使用的是svn,就選擇subversion

增加Xcode構建

如果有workspace的高級配置:

注:通過之后的深入了解,Code Signing Idenity以及SDK的配置是可以不要的,至于Code Signing Idenity的配置也不是這樣的,如果需要配置這個的話,見下面的內容。

Build

Build過程總是失敗,控制臺輸出報如下錯誤:

根據提示:/Application/Xcode 2.app/Contents/Developer路徑不存在,通過一番折騰,搞死人>.<,這個坎終于過了,只要在命令行輸入sudo xcode-select -s /Applications/Xcode.app/執行就好了,可是問題又來了 TT.TT

找到問題所在,開始配置的iOS SDk:iphoneos9.0不對,修改為iphoneos9.2再次構建,然后又報錯T.T(欲哭無淚)。
又折騰半天,心累!找到Jenkins下面的項目運行一下,svn下下來的工程.a文件全部沒有......

想起以前給svn添加過.a文件,SVN上傳.a文件

以為這次能成,結果:

卡死在這里,一直這樣,又不報錯,~~~(>_<)~~~

更新

經過一段時間的摸索與參考,此處推薦lp_馬建成的幾篇Jenkins搭建博客CI第一篇:Jenkins+github->fir.im/蒲公英pgyer.comCI第二篇 集成項目(SVN)workspace編譯生成ipa到fir-蒲公英(jenkins)CI第二篇續 issues

上面的問題主要就是關于No scheme的,而解決這個問題只需在scheme管理share一下再上傳項目就可以了。No scheme 的解決辦法

之后又失敗了一次:

從報錯可以看出,是code design的問題,上面lp_馬建成的博客有提到,但是最后嘗試了很多次都不對,然后查找資料,最后找到一種方式:自己配置Keychains and Provisioning Profiles,這需要用到Keychains and Provisioning Profiles Plugin,具體的配置方法在鏈接里面可以找到。

SUCCEEDED!!! 終于構建成功了,OMG!

但是打包成ipa失敗了:

然后參考了一步一步構建iOS持續集成:Jenkins+GitLab+蒲公英+FTP,失敗原因是不支持Mac10.10以上的打包。所以需要用腳本來實現iOS打包:(請配置自己的workspaceschemeCODE_SIGN_IDENTITYProvisioningProfile

if [ -d "${WORKSPACE}/build" ]; then rm -rf ${WORKSPACE}/build; fi;
mkdir ${WORKSPACE}/build;
if [ -d "${WORKSPACE}/build/${BUILD_NUMBER}" ]; then rm -rf ${WORKSPACE}/build/${BUILD_NUMBER}; fi;
mkdir ${WORKSPACE}/build/${BUILD_NUMBER};
xcodebuild -workspace ${WORKSPACE}/Wecube.xcworkspace -scheme "Wecube" -sdk iphoneos archive -archivePath ${WORKSPACE}/build/${BUILD_NUMBER}/archive CODE_SIGN_IDENTITY="iPhone Distribution: ******"
xcodebuild -exportArchive -exportFormat IPA -archivePath ${WORKSPACE}/build/${BUILD_NUMBER}/archive.xcarchive -exportPath ${WORKSPACE}/build/${BUILD_NUMBER}/${JOB_NAME}.ipa -exportProvisioningProfile "XC Ad Hoc: com.***.***"

注:這里使用shell腳本打包,就把之前的Xcode插件配置全部刪掉了,如果有更好的方法請告知一聲,謝謝!

通過從別人那里的了解,mac 10.10以上可以打包ipa,見stackoverflow

通過這種方式果真也可以打包成ipa。

或者是這樣,不勾選Pack application and build .ipa,build成功之后增加一個Execute shell:

/bin/mkdir $(PWD)/build/OUTPUT    
/usr/bin/xcrun -sdk iphoneos PackageApplication -v $(PWD)/build/MyApplication.app -o $(PWD)/build/OUTPUT/MyApplication.ipa

其中,MyApplication替換成你APP的名稱。

Homebrew

查閱資料的過程中,很多都使用了Homebrew這種Mac上的第三方庫管理工具,這使得mac上的包管理非常方便,具體安裝很簡單,只需在終端輸入:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

完成之后,在終端輸入brew help就可以查看到homebrew的用法:

Example usage:
  brew [info | home | options ] [FORMULA...]
  brew install FORMULA...
  brew uninstall FORMULA...
  brew search [foo]
  brew list [FORMULA...]
  brew update
  brew upgrade [FORMULA...]
  brew pin/unpin [FORMULA...]

Troubleshooting:
  brew doctor
  brew install -vd FORMULA
  brew [--env | config]

Jenkins使用Homebrew安裝:

brew install jenkins

Fir.im以及蒲公英

Fir.im Jenkins插件的使用方法見Fir.im網站的博客傳送門

至于上傳到蒲公英的使用方法下面擴展鏈接上有,就不贅述。

以上就是我配置Jenkins的辛酸歷程,可能有好的方法,但是我已入坑,希望能幫助到遇到同樣問題的童鞋。

擴展鏈接:

IOS使用Jenkins進行持續集成

讓程序員變懶的工具 : Jenkins + 蒲公英

Jenkins+Github+Testflight在Mac下搭建持續集成環境

IOS使用jenkins進行持續集成2

Jenkins、Git、CocoaPods、Fir.im 實現 iOS 應用持續集成

iOS可持續化集成: Jenkins+bundler+cocoapods+fastlane

使用fastlane實現iOS持續集成

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,786評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,656評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,697評論 0 379
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,098評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,855評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,254評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,322評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,473評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,014評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,833評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,016評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,568評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,273評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,680評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,946評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,730評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,006評論 2 374

推薦閱讀更多精彩內容

  • 前言 眾所周知,現在App的競爭已經到了用戶體驗為王,質量為上的白熱化階段。用戶們都是很挑剔的。如果一個公司的推廣...
    偏偏就是禰閱讀 9,022評論 34 59
  • 前言 眾所周知,現在App的競爭已經到了用戶體驗為王,質量為上的白熱化階段。用戶們都是很挑剔的。如果一個公司的推廣...
    閑云清煙閱讀 2,527評論 1 4
  • 來源:伯樂在線專欄作者 - 一縷殤流化隱半邊冰霜鏈接:http://ios.jobbole.com/87576/ ...
    飛天豬Pony閱讀 2,993評論 0 20
  • 我在濱河公園的小路里慢慢的走,昏暗的路燈照著黑幽幽的灌木叢,有蟲子的聲音從黑暗中傳來。我經常在這里走,希望一個艷遇...
    冰眉鐵面閱讀 308評論 0 0
  • 不管你是真文藝還是裝文藝,長江索道可以讓你找尋到重慶的前世今生。晃在長江湍急的水流之上,懷舊的情愫暈染開來…… 一...
    月色的筆尖閱讀 356評論 0 0