一苗傅、Jenkins簡介
作為可擴展的自動化服務器谣蠢,Jenkins 可以用作簡單的 持續(xù)集成(CI)服務器滑潘,或者變成任何項目的持續(xù)交付(CD)中心垢乙。它的特點如下:
- 簡易安裝 Jenkins 是一個基于 Java 的獨立程序,可以立即運行语卤,包含 Windows追逮、Mac OS X 和其他類 Unix 操作系統(tǒng)。
- 配置簡單 Jenkins 可以通過其網頁界面輕松設置和配置粹舵,其中包括即時錯誤檢查和內置幫助钮孵。
- 插件 通過更新中心中的 1000 多個插件,Jenkins 集成了持續(xù)集成和持續(xù)交付工具鏈中幾乎所有的工具眼滤。
- 擴展 Jenkins 可以通過其插件架構進行擴展巴席,從而為 Jenkins 可以做的事提供幾乎無限的可能性。
- 分布式 Jenkins 可以輕松地在多臺機器上分配工作诅需,幫助更快速地跨多個平臺推動構建漾唉、測試和部署荧库。
二、安裝Jenkins
由于Jenkins 依賴于Java赵刑,所以在安裝Jenkins前分衫,需要先檢查是否已安裝Java環(huán)境。在終端輸入命令進行檢測:
java -version
若沒有java環(huán)境前往官網下載安裝即可:
Jenkins安裝方式有兩種:
安裝包方式:前往Jenkins官網下載.pkg安裝包進行安裝即可般此。
Homebrew命令行方式:請確保已安裝Homebrew蚪战,如未安裝可去Homebrew官網,復制命令一鍵安裝 Jenkins安裝命令:
brew install jenkins //推薦使用這種方式安裝铐懊。
安裝結束后邀桑,在終端輸入命令:
jenkins
啟動服務,即可在瀏覽器中輸入http://localhost:8080中進行訪問居扒,如下圖:
依照圖中描述在終端輸入 cat
+ 密碼路徑
概漱,獲取密碼復制下一步。
cat /Users/fsbm/.jenkins/secrets/initialAdminPassword
選擇推薦安裝的插件進行安裝:
等待插件安裝完成:
配置完管理員賬戶:
三喜喂、配置插件
成功安裝后瓤摧,接下來要配置Unity,xcode構建的所需環(huán)境等玉吁,需要安裝的插件有:
插件 | 作用 |
---|---|
SVN | 源碼管理工具(如果使用git請忽略) |
Unity3D Plugin | Unity 運行Unity Editor 編輯器 |
Xcode integration Version | 構建xcode項目照弥,調用agvtool和包。ipa文件的構建器 |
Publish Over SSH Version | 通過SSH發(fā)送編譯包到服務器 |
安裝步驟:
- 點擊管理Jenkins进副;
- 點擊插件管理这揣;
- 點擊可用插件;
- 點擊搜索
-
點擊下載并安裝影斑。
四给赞、新建任務
點擊 Jenkins首頁 > 新建Item。輸入任務名稱并選中自由風格工程矫户,下一步片迅。
在通用選項里可進行一些描述信息填寫和構建包丟棄計劃(非必要設置),如圖:
五柑蛇、配置SVN
- 填寫Repository URL,即項目的SVN路徑驱闷;
- 添加憑證耻台,SVN的賬戶和密碼;
- 選擇剛才添加好的憑證空另;
- 點擊保存盆耽;
- 點擊現(xiàn)在構建;
- 點擊正在構建的項目可以查看構建進度和日志;
等到構建完成都弹,打開工作空間娇豫,發(fā)現(xiàn)你的項目已經被克隆下來了匙姜。
六、配置Unity
-
配置Unity編輯器路徑冯痢;
2. 編寫Unity打包腳本氮昧,在Unity工程中新建腳本,命名為:BuildProject.cs,放在Editor 文件夾中浦楣,腳本內容如下:
using UnityEditor;
using System.IO;
using System.Collections;
using UnityEngine;
using System.Collections.Generic;
class PerformBuild
{
static string[] GetBuildScenes()
{
List<string> names = new List<string>();
foreach (EditorBuildSettingsScene e in EditorBuildSettings.scenes)
{
if (e == null)
continue;
if (e.enabled)
names.Add(e.path);
}
return names.ToArray();
}
static string GetBuildPath()
{
return "Build/Build_ios";
}
[MenuItem("XRL/Build")]
static void CommandLineBuild()
{
Debug.Log("Command line build\n------------------\n------------------");
string[] scenes = GetBuildScenes();
string path = GetBuildPath();
if (scenes == null || scenes.Length == 0 || path == null)
//return;
Debug.Log(string.Format("Path: \"{0}\"", path));
for (int i = 0; i < scenes.Length; ++i)
{
Debug.Log(string.Format("Scene[{0}]: \"{1}\"", i, scenes[i]));
}
Debug.Log("Starting Build!");
BuildPipeline.BuildPlayer(scenes, path, BuildTarget.iOS, BuildOptions.None);
}
static string GetBuildPathAndroid()
{
return "Bulid/android";
}
}
- 配置編譯命令
- 選中當前項目袖肥;
- 點擊添加編譯步驟,選擇調用Unity編輯器
- 選擇上一步配置好的Unity編輯器
- 輸入編譯命令
-quit -batchmode -executeMethod PerformBuild.CommandLineBuild
- 保存振劳,然后點擊現(xiàn)在編譯椎组,等待編譯完成,打開工作區(qū)間历恐,找到“Build/Build_ios”目錄寸癌,發(fā)現(xiàn)Xcode工程已經生成出來了。
七弱贼、配置Xcode
打IOS包需要開發(fā)者賬號和必要的證書蒸苇。
在Unity里設置:
- 包名(在蘋果開發(fā)者后臺創(chuàng)建);
- 團隊ID吮旅,開發(fā)者賬號對應的Team ID溪烤;
-
勾選自動簽名。
- 配置證書
- 點擊Jenkins主頁->管理Jenkins->證書管理->全局證書
- 點擊左邊的添加證書
- 類型選擇Mac OSkeychain password and path
- 描述填:login.keychain
- 路徑填:/Users/xxx/Library/Keychains/login.keychain-db
-
密碼為電腦密碼庇勃。
- 添加Xcode編譯步驟
點擊Jenkins主頁->選中項目->選中配置
-
在構建一項中點擊添加構建步驟檬嘀,選擇Xcode
在通用編譯設置里面填寫開發(fā)者團隊ID
- 配置填寫:Release
- Xcode Schema File 填寫: 項目名
- 勾選創(chuàng)建壓縮包選
- 導出方式填寫:development
- 導出文件夾填寫:${WORKSPACE}/Build/Build_ipa
- 勾選自動簽名
- 勾選解鎖鑰匙串,鑰匙串選擇之前配置好的login.keychain,地址和密碼和之前一樣
- 打開高級選項填寫Xcode工程文件夾和編譯輸出文件夾
- 點擊應用责嚷,點擊保存鸳兽,點擊編譯,等待編譯結果再层。編譯時間根據項目情況而定贸铜,我的項目編譯用時大概是6-8個小時。
八聂受、配置SSH服務器
- 配置服務器信息(需要https服務器蒿秦,否則無法下載安裝)
- 點擊Jenkins主頁- > 系統(tǒng)配置 ,找到Publish over SSH
- Server Name 填寫:XRL
- Hostname 填寫: 遠程服務器地址
- 用戶名填寫:服務器用戶名
- 遠程文件夾填寫:要存放的目錄
- Passphrase :選擇密碼,然后填寫服務器密碼
- 配置SSH構建步驟
- 點擊Jenkins主頁->選中項目->選中配置蛋济,選擇發(fā)送文件到SSH
- 服務器選擇上一步配置好的服務器
- 文件名填寫: */.ipa (注意棍鳖,是相對路徑)
- 遠程文件夾可以不填,不填會直接上傳到服務器配置時候填寫的文件夾里。
- 執(zhí)行命令是必填的渡处,可以隨便寫一個命令镜悉。
6. 點擊應用,點擊保存医瘫,然后點擊現(xiàn)在編譯侣肄,編譯成功之后會發(fā)現(xiàn)服務器指定的文件夾已經存在導出的 .ipa 文件啦!
整個過程很長醇份,中間可能會遇到很多問題稼锅,這里就不一一列舉了,查一查資料僚纷,相信你可以自己解決矩距。到這里還沒完,還要生成網頁鏈接怖竭,給到測試人員下載測試锥债。這一步后面的文章會寫到。
環(huán)境:
Unity:2020.3.26f
Jenkins: 2.339
Xcode: 13.2.1
Mac OS: 12.2.1
Home Brew: 3.4.2
Java Version: 1.8.0_321