標籤(空格分隔):workhtml
本文將以問題與解決方案的方式對Jenkins構建過程當中的問題進行收錄,後期會在評論中持續收集,若是有相同狀況,請自行對照解決;java
本文參考: 手把手教你利用Jenkins持續集成iOS項目 http://www.jianshu.com/p/41ecb06ae95f 關於iOS-Jenkins進行持續集成項目部署 http://www.jianshu.com/p/54c7daae6c94 iOS持續集成:Jenkins篇 http://www.jianshu.com/p/faf879b3d182linux
安裝Jenkins:首先你的電腦得有一個Java環境,接下來安裝Jenkins。你能夠直接去Jenkins入口網站,查看安裝方式; 固然你也可使用如下方法:git
$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
複製代碼
$ brew install jenkins
複製代碼
安裝成功後須要開啓jenkins服務;github
開啓Jenkins服務:確認jenkins已安裝,在終端進入到jenkins安裝目錄下,會有一個叫作jenkins.war的文件,瀏覽器
$ java -jar jenkins.war
複製代碼
或者在終端輸入:ruby
$ jenkins
複製代碼
當出現: bash
服務已經就位,能夠開始進行配置了;ssh
這裏還有兩個命令用於jenkins開啓和停用(Mac上):curl
$ sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist
$ sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
複製代碼
若是是linux上也能夠這樣:
$ sudo systemctl status jenkins.service
$ sudo systemctl start jenkins.service
複製代碼
不過實際操做過程當中,可能會出現停用失敗的狀況,個人作法是直接打開活動監視器,在裏面搜java服務,強制關閉掉;這裏須要注意,若是服務沒有中止再進行jenkins開啓是不成功的,提示會告訴你已經在用:
若是你想查看是否jenkins在運行,使用命令查看:
$ ps aux | grep jenkins
複製代碼
安裝並開啓完成就能夠在瀏覽器裏輸入localhost:8080進行頁面化配置了; 安裝完成以後,Safari可能會自動打開,若是沒有自動打開,打開瀏覽器,輸入http://localhost:8080
這個時候可能會報一個錯誤。若是出現了這面的問題。出現這個問題的緣由就是Java環境有問題,重啓Java環境便可。
這個時候若是你重啓電腦會發現Jenkins給你新增了一個用戶,名字就叫Jenkins,不過這個時候你不知道密碼。你可能會去試密碼,確定是是不對的,由於初始密碼很複雜。這個時候正確作法是打開http://localhost:8080 會出現下圖的重設初始密碼的界面。
按照提示,找到/Users/Shared/Jenkins/Home/ 這個目錄下,這個目錄雖然是共享目錄,可是有權限的,非Jenkins用戶/secrets/目錄是沒有讀寫權限的。
打開initialAdminPassword文件,複製出密碼,就能夠填到網頁上去重置密碼了。以下圖
一路安裝過來,輸入用戶名,密碼,郵件這些,就算安裝完成了。
仍是繼續登陸localhost:8080
然而這一關尚未結束: 寫blog的時候我把本身設置的賬號註銷了,然而當時設置的密碼卻忘記了,怎麼都想不起來,怎麼辦呢? 首先我想能不能用以前給的Jenkins賬戶呢,經試錯,未果; 接下來上百度查了幾種方法,有的方法很複雜,不打算用,咱們只用最簡單粗暴的;只要以前的賬號信息沒有丟失,又能夠進入系統就OK了,因而:
注意實際操做過程當中發現不是/User/Shared/Jenkins/Home
下的config.xml,也不是/User/Shared/Jenkins/Home/users
下的config.xml,而是你本身用戶目錄~/.jenkins/
下的config.xml,具體緣由多是jenkins運行的工做空間是當前用戶目錄下的.jenkins
,而後就是這樣:
經檢驗,無誤,可進入,可是好像遺留了一個問題,就是這樣進入的話就找不到管理用戶的選項了;解決問題,勾選圖中黃色圈,返回系統管理,出現管理用戶(仍是個隱藏道具);
搞的像是特工登陸非受權賬戶同樣,無論怎麼說,總算是攻破了,進入下一關;
先無論工程構建裏那一堆設置,咱們先來搞一下證書Cer,鑰匙Keychain,配置文件Provisioning Profiles的一些問題: 首先去系統管理 -> 管理插件 -> 可選插件,搜索並安裝Keychains and Provisioning Profiles Management插件; 進入插件:
不要關鍵去填下面的空,我會告訴你這是一道有選項的題目;進入文件目錄,Command + shift + G
,寫下這樣的路徑~/資源庫/Keychains
,
這裏咱們把login.keychain-db上傳到Jenkins裏,可是Upload並不能上傳這樣後綴的文件,因此須要你手動把login.keychain-db修改爲login.keychain(複製後再修改,以防止其餘地方會引用到帶-db);上傳完成後就會在下面出現你一些信息;而後打開你的鑰匙串,這個知道在什麼地方吧;
點擊打包所用到的證書,將紅色框中的名稱複製出來,添加到identities中;
若是有多個,則點擊Add Code Signing Identity添加;
而後是PP文件,這些文件須要咱們從系統PP文件夾下複製到Jenkins資源文件夾下,以下圖兩個路徑: 這個是系統PP文件目錄
這個是Jenkins PP文件目錄Provisioning Profiles Directory Path 填寫成,注意替換爲本身的username:
/User/{USERNAME}/Library/MobileDevice/Provisioning Profiles
複製代碼
接着去你蘋果賬號裏去找你對應打包所須要的PP文件,而後點upload上傳到Jenkins環境裏; 以上,證書部分解決;
建立項目過程咱們會對各個須要的項進行逐個描述: 點新建項目,輸入項目名稱,選擇 構建一個自由風格的軟件項目,而後肯定,進入配置頁面。
Credentials在這裏配置:
*/release
;這裏咱們PS一個隱藏BOSS:
returned status code 143 jenkins
ERROR: Error fetching remote repo ‘origin’
複製代碼
這個報錯是工程配置結束後進行構建後提示的,我當時搞這個發現遠程代碼明明是已經拉取到本地的,只是在拉取過程當中會發生中斷,本人在進行了將近50次試錯後發現這個拉取到本地的代碼率是變化的,先前覺得是SSH賬號的問題,因而轉頭花了一天的時間搞了下SSH,後來SSH搞通後發現該問題仍然存在,後來終於在經歷百度,谷歌,搜狗也用上的(不得不說有時候百度搜不出來的搜狗能搜到),發現了幾篇有用的,後來解決,也算是不負辛苦,後面有踩坑的夥伴多注意,前車可鑑後事之師;
blog.sina.com.cn/s/blog_72ef… issues.jenkins-ci.org/browse/JENK… stackoverflow.com/questions/3…
解決方案就在於這個Timeout,相信你看了這個單詞就知道是怎麼回事了:
另順便粘一個code 128的連接,是個與該問題相關的問題,由於這些問題關鍵字有的重複,因此搜出來的文章有時會誤導,因此請仔細辨別:
returned status code 128 jenkins
ERROR: Error cloning remote repo 'origin'
stderr: Permission denied (publickey).
複製代碼