1. 程式人生 > >Xcode Server (Xcode9)搭建CI

Xcode Server (Xcode9)搭建CI

任務 服務器 http 否則 nbsp 需要 val 選擇 發送

Xcode 9將Xcode Server集成進來了,這是Xcode一個新特性,不用去單獨下載server了,server可以用來做CI、自動化Test等等。這裏主要介紹搭建CI,相當簡單

技術分享

打開開關,新建一個server

技術分享

可以設置集成超時時間

技術分享

服務器啟動了,就可以創建機器人了,機器人就是執行某些任務的一個單元

技術分享

在創建的過程中註意,如果想要利用Xcode從Git上拉代碼,需要登錄。登錄方式有三種,第一種最簡單,直接輸入用戶名密碼。推薦第三種,但是需要設置SSH,配置的過程自行百度。

技術分享

登錄成功就可以選擇分支了

技術分享

下一步需要重點說明,Export方式有四種,建議選擇第四種,讀取自己寫的exportOptionsPlist,第三種需要配置provisioningProfiles,未實驗成功。

技術分享

在Xcode9下,exportOptionsPlist的內容會有變化,需要增加provisioningProfiles這一個字典,字典的key就是bundleId,value就是provisioning profile文件名(和Xcode的Build Setting選項下的一致)

技術分享

集成構建的周期

技術分享

建議手動管理證書

技術分享

這裏註意,環境變量一定要填寫,否則pod install會報錯。PATH對應的值需要打開終端,敲入以下命令獲取

echo $PATH

技術分享

構建動作包括構建前、後和郵件通知。

技術分享

構建前的腳本就是pod install,需要cd到項目目錄下再執行

技術分享

構建後腳本就是上傳ipa至fir(需要安裝fir-cli,傳送門https://github.com/FIRHQ/fir-cli/blob/master/doc/install.md)

技術分享

這裏有一個問題,就是如果構建失敗(包括腳本執行失敗)Xcode會刪除.xcArchieve和.ipa等文件,所以我將ipa文件拷貝到單獨的文件夾,再上傳。

這裏是腳本內容

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

# 進入工程根目錄
IPA_NAME=$(basename "${XCS_ARCHIVE%.*}".ipa)

IPA_PATH="${XCS_OUTPUT_DIR}/ExportedProduct/${IPA_NAME}"

echo ${IPA_PATH}

rm -r -f ${HOME}/Desktop/Package/${IPA_NAME}
cp 
-R ${IPA_PATH} ${HOME}/Desktop/Package #上傳至fir fir publish ${HOME}/Desktop/Package/${IPA_NAME} -Q -T 863efefc********************* #上傳至蒲公英 curl -F "[email protected]${IPA_PATH}" -F "uKey=******************2f5e99f3a7495" -F "_api_key=******************eb2d5cb44d93183" http://www.pgyer.com/apiv1/app/upload

新建一個周期郵件在構建完成後發送。點擊Create,就完成了,趕緊去構建項目吧!

技術分享

如果構建失敗...

技術分享

Xcode Server (Xcode9)搭建CI