本文是投稿文章,作者:牧碼人_ (簡書)
前言
常用的持續集成工具有Jenkins、Travis CI、Xcode server等,當然我們選擇最簡單的Xcode server。
OS X server中集成了git版本管理功能,Xcode server持續集成服務,還有wiki知識庫管理等,你甚至還可以拿它搭建一個網站服務器。
在持續集成過程中你可以直接使用os x server 的git版本管理功能,將代碼提交至自己搭建的OS X server服務器。也可以將代碼提交至其他git版本管理倉庫中(比如GitHub)。
設備
一台Git服務器,可以用GitHub、oschina等。
一台裝OS X Server的服務器,必須為MAC,下文簡稱 Xcode Server服務器。
若干MAC做客戶端,下文簡稱客戶端。
若干台iOS測試機。
一、配置Xcode Server服務器
1、Apple給開發者可以憑開發者賬號免費兌換OS X Server。免費兌換地址:
https://developer.apple.com/devcenter/mac/loadredemptioncode.action?seedId=13CB96H8S4
2、下載OS X Server後點擊安裝。
3、打開 Server 應用,以查看 OS X Server 中提供的服務列表。選擇“Xcode”。
點按“選取 Xcode”按鈕,然後在“應用程序”文件夾中選擇“Xcode”。Xcode 服務將自動啟動。
4、開發者團隊
在此處千萬不要添加開發者賬號
5、添加git存儲庫,如果用Github、oschina或者自己搭建的git服務器則不需要此步驟。
Xcode 服務 Bot 將從源 Git 儲存庫訪問項目和代碼。
點按“儲存庫”,然後點按 添加按鈕。選取 Git 儲存庫的名稱,然後點按“創建”。
儲存庫的 URL 基於服務器主機名稱和儲存庫名稱。例如,儲存庫的 URL 將為:https://myserver.example.com/git/Mac_Calc.git。
二、配置Xcode客戶端,創建bot
1、打開xcode>product>create bot
2、填寫bot名稱,選擇Xcode Server服務器
3、Actions:選擇執行的動作:
a、對代碼進行靜態分析
b、對代碼進行單元測試
c、生成archive包(可以選擇是否生成用戶安裝包)
4、cleaning:選擇在何時清理項目,有幾個選項(總是、每天、每周、從不)
5、configuration:選擇編譯配置(Debug、release)
6、選擇在何時Xcode Server服務器開始持續集成,有幾個選項(定時、在有新代碼提交時、手動)
7、Before Integration 在開始持續集成前執行的腳本
8、 After Integration在持續集成後執行的腳本
9、至此,創建bot完成
三、Xcode Server服務器證書配置
1、配置Certificates
打開鑰匙串,將iPhone Developer: xxx和iPhone Distribution:xxx導出為.p12文件
將導出的.p12文件 導入裝OS X Server的MAC的鑰匙串中,這次需導入到鑰匙串系統中,而不是登錄中
持續集成生成包時證書由/usr/bin/codesign管理,所以需將codesign添加為允許訪問證書的程序
在顯示簡介中選擇 訪問控制 >始終通過這些應用程序訪問 中點擊加號,開始選擇/usr/bin/codesign程序。選擇完成後點擊確認。由於usr是隱藏文件,在選擇時使用快捷鍵 CMD+SHIFT+. 顯示隱藏文件
按照以上步驟將iPhone Distribution:xxx的訪問控制,也添加/usr/bin/codesign程序。
2、將Provisioning Profiles拷貝到Xcode Server
Xcode客戶端證書保存在以下文件夾中
User/Library/MobileDevice/ProvisioningProfiles
Xcode Server服務器證書保存在以下文件夾中
/Library/Developer/XcodeServer/ProvisioningProfiles
將Xcode客戶端路徑下的證書保存至Xcode Server服務器對應路徑下
3、在上傳代碼到倉庫時需選擇正確的證書,如下圖
四、開始持續集成
點擊integrate開始持續集成
正常情況等待幾分鐘會看到下面的界面,說明持續集成完成。可以將ipa包安裝到手機,也可以將Archive上傳到appStore。當然也可以直接用iPhone Safari訪問xcode server進行安裝。