蘋(píng)果開(kāi)發(fā)最便捷的持續(xù)集成方案—Xcode Server

如果要進(jìn)行iOS持續(xù)集成空骚,最流行的大概是Jenkins,F(xiàn)astlane驶忌。但是目前來(lái)看這些配置都比較復(fù)雜矛辕,而最簡(jiǎn)單的是使用Xcode Server,但是網(wǎng)上資料卻比較少付魔。

Xcode Server由蘋(píng)果開(kāi)發(fā)聊品,與Xcode高度集成,可對(duì)代碼進(jìn)行靜態(tài)分析几苍、單元測(cè)試翻屈、打包等。對(duì)蘋(píng)果開(kāi)發(fā)來(lái)說(shuō)是最友好的一種方式妻坝。

Xcode 9伸眶,是Xcode Server的一次轉(zhuǎn)折。在此之前需要安裝MacOS Server 在其基礎(chǔ)上進(jìn)行配置刽宪,雖然能夠?qū)崿F(xiàn)CI,但Bug比較多厘贼。

Xcode 9開(kāi)始,Xcode Server就集成到了Xcode中圣拄,只需要安裝Xcode就能進(jìn)行CI操作嘴秸,而且配置操作變得極其簡(jiǎn)單,證書(shū)也可以自動(dòng)配置庇谆。

步驟一 -- 開(kāi)啟Xcode Server

在你希望用于持續(xù)集成的Mac電腦上開(kāi)啟Xcode Server

打開(kāi)Xcode -> Preferences -> 選中Server & Bots -> Turn On

[圖片上傳失敗...(image-47bb89-1562568411948)]

步驟二 -- 連接X(jué)code Server

在你開(kāi)發(fā)的電腦上添加X(jué)code Server服務(wù)器岳掐。

打開(kāi)Xcode -> Preferences -> Accounts -> 添加X(jué)code Server -> 直接選擇對(duì)應(yīng)電腦或者通過(guò)IP連接

[站外圖片上傳中...(image-1d89e2-1562568411948)]

[圖片上傳失敗...(image-998607-1562568411948)]

添加成功后將會(huì)在Report Navigator中看到添加的服務(wù)器。
[圖片上傳失敗...(image-106875-1562568411948)]

步驟三 -- 創(chuàng)建bot

Xcode Server中CI任務(wù)由Bot進(jìn)行管理
創(chuàng)建由兩種方式饭耳,一種通過(guò)Product -> Create Bot 創(chuàng)建串述。另一種在Report Navigator中選中添加的服務(wù)器,右鍵Create Bot.

取名->配置倉(cāng)庫(kù)->配置Scheme,靜態(tài)分析哥攘,測(cè)試剖煌,打包等->集成的頻率->證書(shū)配置->設(shè)備->xcodebuild參數(shù)和環(huán)境變量->打包觸發(fā)器

[圖片上傳失敗...(image-cd683c-1562568411948)]
[站外圖片上傳中...(image-a4b43c-1562568411948)]

如果我們擔(dān)心打出的包是Adhoc版本還是Appstore版本材鹦,我們可以通ExportOptions.plist來(lái)進(jìn)行配置逝淹。如下圖:
[圖片上傳失敗...(image-c8094d-1562568411948)]

Trigger耕姊,這部分可以添加集成前、集成后需要觸發(fā)的腳本栅葡,還有右鍵通知配置茉兰。

一般開(kāi)發(fā)中會(huì)使用cocoapods,也需要將包上傳至蒲公英和appStore.
這里提供幾個(gè)腳本

pod install

#!/bin/sh
export LANG=en_US.UTF-8

cd ${XCS_PRIMARY_REPO_DIR}

pwd

rm -f Podfile.lock

/usr/local/bin/pod install

這里需要注意的時(shí)pod 的路徑。直接執(zhí)行pod install可能會(huì)提示無(wú)法找到pod命令欣簇。因此需要直接載入完整路徑规脸。

在terminal中執(zhí)行where pod,找到打包機(jī)上的pod路徑

$ where pod
/usr/local/bin/pod

上傳蒲公英

#!/bin/sh

#請(qǐng)根據(jù)蒲公英自己的賬號(hào)熊咽,將其中的 uKey 和 _api_key 的值替換為相應(yīng)的值莫鸭。

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

上傳AppStore

#!/bin/sh
altoolPath="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool"
# 填入你的Apple ID
USERNAME="你的AppleID"
#  需要去Apple ID賬戶生成 App 專(zhuān)用密碼
PASSWORD="App 專(zhuān)用密碼"

"$altoolPath" --validate-app -f ${XCS_PRODUCT} -u ${USERNAME} -p ${PASSWORD} -t ios
"$altoolPath" --upload-app -f ${XCS_PRODUCT} -u ${USERNAME} -p ${PASSWORD} -t ios

更詳細(xì)的文檔

請(qǐng)參閱以前翻譯的部分,一些配置還是可以用的Xcode Server中文翻譯

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末横殴,一起剝皮案震驚了整個(gè)濱河市被因,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌衫仑,老刑警劉巖梨与,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異文狱,居然都是意外死亡粥鞋,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)瞄崇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)呻粹,“玉大人,你說(shuō)我怎么就攤上這事苏研〉茸牵” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵楣富,是天一觀的道長(zhǎng)凿掂。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纹蝴,這世上最難降的妖魔是什么庄萎? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮塘安,結(jié)果婚禮上糠涛,老公的妹妹穿的比我還像新娘。我一直安慰自己兼犯,他們只是感情好忍捡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布集漾。 她就那樣靜靜地躺著,像睡著了一般砸脊。 火紅的嫁衣襯著肌膚如雪具篇。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天凌埂,我揣著相機(jī)與錄音驱显,去河邊找鬼。 笑死瞳抓,一個(gè)胖子當(dāng)著我的面吹牛埃疫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播孩哑,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼栓霜,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了横蜒?” 一聲冷哼從身側(cè)響起胳蛮,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎愁铺,沒(méi)想到半個(gè)月后鹰霍,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡茵乱,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年茂洒,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓶竭。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡督勺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出斤贰,到底是詐尸還是另有隱情智哀,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布荧恍,位于F島的核電站瓷叫,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏送巡。R本人自食惡果不足惜摹菠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望骗爆。 院中可真熱鬧次氨,春花似錦、人聲如沸摘投。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至幸撕,卻和暖如春薇组,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背杈帐。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工体箕, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留专钉,地道東北人挑童。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像跃须,于是被迫代替她去往敵國(guó)和親站叼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容