這是一個(gè)很浪費(fèi)時(shí)間的工作,確實(shí)是一個(gè)體力活。正好朋友說(shuō)你們有沒(méi)有用持續(xù)集成,然后想弄一個(gè)自己用吧,也算是一個(gè)經(jīng)歷。
下面記錄大致步驟,至于細(xì)節(jié),或者錯(cuò)誤可以根據(jù)日志的提示stackoverflow或者Google查到資料。
主要大致分為幾個(gè)大得步驟如下圖

步驟一:安裝jenkins.下載jenkins.war(https://jenkins.io/index.html)去這個(gè)網(wǎng)址下載。由于運(yùn)行環(huán)境和java有關(guān),如果Mac電腦要安裝java環(huán)境的jdk.
步驟二:進(jìn)入到j(luò)enkins.war目錄比如 我在桌面的777文件夾 用命令進(jìn)入 cd /Users/用戶名(你電腦用戶名)/Desktop/777。執(zhí)行命令java -jar jenkins.war --httpPort=8888
突突一會(huì)看到下圖界面

步驟三:http://localhost:8888 。進(jìn)入到j(luò)enkins管理頁(yè)面了。
步驟四:一個(gè)很重要的步驟,安裝一些插件。
1:安裝Xcode插件
同安裝GitLab插件的步驟一樣,我們依次選擇系統(tǒng)管理->管理插件,在“可選插件”中選中“Xcode integration”安裝。
2:安裝簽名證書管理插件
iOS打包內(nèi)測(cè)版時(shí),需要發(fā)布證書及相關(guān)簽名文件,因此這兩個(gè)插件對(duì)于管理iOS證書非常方便。還是在系統(tǒng)管理->管理插件,在“可選插件”中選中“Credentials Plugin”和“Keychains and Provisioning Profiles Management”安裝
3:安裝腳本插件
這個(gè)插件的功能主要是用于在build后執(zhí)行相關(guān)腳本。在系統(tǒng)管理->管理插件,在“可選插件”中選中“Post-Build Script Plug-in”安裝。如果你安裝的Jenkins找不到這個(gè)插件,可以去下載安裝看下圖安裝步驟。


4:Subversion Plug-in
這個(gè)插件是用來(lái)從SVN服務(wù)器拉取代碼的,當(dāng)然如果你用的是git進(jìn)行版本管理,可以用選相關(guān)的git插件(Git+Plugin),這里不做介紹。
步驟五:配置Jenkins
1:配置SVN如下圖

Repository URL:這里需要注意的地方如果填寫完自己SVN地址時(shí)候,每次構(gòu)建時(shí)候總報(bào)和SVN有關(guān)的警告信息??梢栽诤竺嫫唇由螥HEAD。具體原因可根據(jù)警告或者錯(cuò)誤自己查看。如果不知道空格里面填寫什么可以看空格后面的問(wèn)號(hào),他會(huì)告訴你應(yīng)該怎么做。比如這里就遇到這個(gè)問(wèn)題。

Credentials:這里選第一項(xiàng),輸入用戶名密碼。這個(gè)用過(guò)版本管理的童鞋們應(yīng)該知道如下圖:

iOS打包需要簽名文件和證書,所以這部分我們勾選“Keychains and Code Signing Identities”和“Mobile Provisioning Profiles”。
這里我們又需要用到Jenkins的插件,在系統(tǒng)管理頁(yè)面,選擇“Keychains and Provisioning Profiles Management”。如下圖:
到~/Library/Keychains/找login.keychain 密碼你自己本機(jī)登錄密碼

上傳完成后可以選擇如下圖


同樣如果出現(xiàn)問(wèn)題,基本就是路徑問(wèn)題,沒(méi)有配置好。FATAL: The path to store mobile provisioning profile files on the master is not configured. Go the plugin main configuration page and give the path.還是那句話,根據(jù)錯(cuò)誤日志以及空格的問(wèn)號(hào)來(lái)找原因。
步驟六:配置Xcode環(huán)境看下圖是不是很簡(jiǎn)單

其實(shí)主要是一些路徑配置,比如工程路徑,需要打包后的輸出路徑等。
步驟七:上傳IPA到蒲公英,這里需要蒲公英的一些key看個(gè)人設(shè)置里找到.用下面命令上傳IPA
curl -F “file=…………...ipa" -F “uKey=…..." -F “_api_key=…….."http://www.pgyer.com/apiv1/app/upload
步驟八:上傳成功把App的一些信息郵件發(fā)送給某些人
可以參考下面鏈接https://www.ttlsa.com/linux/use-sendemail/
需要自己下載sendermail包默認(rèn)沒(méi)有。
可能遇到的一些問(wèn)題
invalid SSL_version specified at /usr/share/perl5/IO/Socket/SSL.pm line 332
下面介紹自動(dòng)打包過(guò)程中遇到的一些問(wèn)題。坑很多已踩希望對(duì)你們有所幫助。
1:有人說(shuō)不能自動(dòng)打包10.10以后。其實(shí)是可以的需要在Xcode設(shè)置一些東西如下圖

2:如果你得靜態(tài)庫(kù)等文件在本地,可以設(shè)置上傳到版本服務(wù)器上。
3:

創(chuàng)建一個(gè)新的schemes。并且不要選擇cocoapods安裝的一些第三方庫(kù)
4:


設(shè)置Tests的bundle identifier 和你工程的bundle identifier一樣。