如果要進(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中文翻譯