使用Jenkins構建Unity項目的IOS包

Jenkins

一苗傅、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)境

若沒有java環(huán)境前往官網下載安裝即可:

https://www.java.com/en/download/

Jenkins安裝方式有兩種:

  • 安裝包方式:前往Jenkins官網下載.pkg安裝包進行安裝即可般此。

  • Homebrew命令行方式:請確保已安裝Homebrew蚪战,如未安裝可去Homebrew官網,復制命令一鍵安裝 Jenkins安裝命令:

brew install jenkins //推薦使用這種方式安裝铐懊。

安裝結束后邀桑,在終端輸入命令:

jenkins

啟動服務,即可在瀏覽器中輸入http://localhost:8080中進行訪問居扒,如下圖:

獲取管理員密碼

依照圖中描述在終端輸入 cat + 密碼路徑概漱,獲取密碼復制下一步。

cat /Users/fsbm/.jenkins/secrets/initialAdminPassword

選擇推薦安裝的插件進行安裝:

image

等待插件安裝完成:

安裝推薦插件

配置完管理員賬戶:

創(chuàng)建管理員

三喜喂、配置插件

成功安裝后瓤摧,接下來要配置Unity,xcode構建的所需環(huán)境等玉吁,需要安裝的插件有:

插件 作用
SVN 源碼管理工具(如果使用git請忽略)
Unity3D Plugin Unity 運行Unity Editor 編輯器
Xcode integration Version 構建xcode項目照弥,調用agvtool和包。ipa文件的構建器
Publish Over SSH Version 通過SSH發(fā)送編譯包到服務器

安裝步驟:

  1. 點擊管理Jenkins进副;
  2. 點擊插件管理这揣;
  3. 點擊可用插件;
  4. 點擊搜索
  5. 點擊下載并安裝影斑。


    選擇管理插件
搜索安裝插件

四给赞、新建任務

點擊 Jenkins首頁 > 新建Item。輸入任務名稱并選中自由風格工程矫户,下一步片迅。


新建項目

在通用選項里可進行一些描述信息填寫和構建包丟棄計劃(非必要設置),如圖:

添加描述皆辽,參數等

五柑蛇、配置SVN

  1. 填寫Repository URL,即項目的SVN路徑驱闷;
  2. 添加憑證耻台,SVN的賬戶和密碼;
  3. 選擇剛才添加好的憑證空另;
  4. 點擊保存盆耽;
配置SVN
  1. 點擊現(xiàn)在構建;
拉取SVN項目
  1. 點擊正在構建的項目可以查看構建進度和日志;
查看狀態(tài)征字,日志等信息

等到構建完成都弹,打開工作空間娇豫,發(fā)現(xiàn)你的項目已經被克隆下來了匙姜。

六、配置Unity

  • 配置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";
 }
}
  1. 配置編譯命令
  • 選中當前項目袖肥;
  • 點擊添加編譯步驟,選擇調用Unity編輯器
添加編譯Unity命令
選擇調用Unity編輯器
  • 選擇上一步配置好的Unity編輯器
  • 輸入編譯命令
-quit -batchmode -executeMethod PerformBuild.CommandLineBuild
輸入命令
  • 保存振劳,然后點擊現(xiàn)在編譯椎组,等待編譯完成,打開工作區(qū)間历恐,找到“Build/Build_ios”目錄寸癌,發(fā)現(xiàn)Xcode工程已經生成出來了。

七弱贼、配置Xcode

  • 打IOS包需要開發(fā)者賬號和必要的證書蒸苇。

  • 在Unity里設置:

  1. 包名(在蘋果開發(fā)者后臺創(chuàng)建);
  2. 團隊ID吮旅,開發(fā)者賬號對應的Team ID溪烤;
  3. 勾選自動簽名。


    IOS導出配置
  • 配置證書
  1. 點擊Jenkins主頁->管理Jenkins->證書管理->全局證書
  2. 點擊左邊的添加證書
  3. 類型選擇Mac OSkeychain password and path
  4. 描述填:login.keychain
  5. 路徑填:/Users/xxx/Library/Keychains/login.keychain-db
  6. 密碼為電腦密碼庇勃。


    配置IOS證書
  • 添加Xcode編譯步驟
  1. 點擊Jenkins主頁->選中項目->選中配置

  2. 在構建一項中點擊添加構建步驟檬嘀,選擇Xcode


    選擇Xcode
  3. 在通用編譯設置里面填寫開發(fā)者團隊ID

填寫Team ID
  1. 配置填寫:Release
  2. Xcode Schema File 填寫: 項目名
  3. 勾選創(chuàng)建壓縮包選
  4. 導出方式填寫:development
  5. 導出文件夾填寫:${WORKSPACE}/Build/Build_ipa
填寫項目名等
  1. 勾選自動簽名
  2. 勾選解鎖鑰匙串,鑰匙串選擇之前配置好的login.keychain,地址和密碼和之前一樣
選擇簽名
  1. 打開高級選項填寫Xcode工程文件夾和編譯輸出文件夾
填寫Xcode工程文件夾
  1. 點擊應用责嚷,點擊保存鸳兽,點擊編譯,等待編譯結果再层。編譯時間根據項目情況而定贸铜,我的項目編譯用時大概是6-8個小時。

八聂受、配置SSH服務器

  • 配置服務器信息(需要https服務器蒿秦,否則無法下載安裝)
  1. 點擊Jenkins主頁- > 系統(tǒng)配置 ,找到Publish over SSH
  2. Server Name 填寫:XRL
  3. Hostname 填寫: 遠程服務器地址
  4. 用戶名填寫:服務器用戶名
  5. 遠程文件夾填寫:要存放的目錄
  6. Passphrase :選擇密碼,然后填寫服務器密碼
配置SSD服務器
  • 配置SSH構建步驟
  1. 點擊Jenkins主頁->選中項目->選中配置蛋济,選擇發(fā)送文件到SSH
添加SSH構建步驟
  1. 服務器選擇上一步配置好的服務器
  2. 文件名填寫: */.ipa (注意棍鳖,是相對路徑)
  3. 遠程文件夾可以不填,不填會直接上傳到服務器配置時候填寫的文件夾里。
  4. 執(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

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末痊臭,一起剝皮案震驚了整個濱河市哮肚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌趣兄,老刑警劉巖绽左,帶你破解...
    沈念sama閱讀 211,743評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異艇潭,居然都是意外死亡拼窥,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評論 3 385
  • 文/潘曉璐 我一進店門蹋凝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鲁纠,“玉大人,你說我怎么就攤上這事鳍寂「暮” “怎么了?”我有些...
    開封第一講書人閱讀 157,285評論 0 348
  • 文/不壞的土叔 我叫張陵迄汛,是天一觀的道長捍壤。 經常有香客問我,道長鞍爱,這世上最難降的妖魔是什么鹃觉? 我笑而不...
    開封第一講書人閱讀 56,485評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮睹逃,結果婚禮上盗扇,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好疗隶,可當我...
    茶點故事閱讀 65,581評論 6 386
  • 文/花漫 我一把揭開白布佑笋。 她就那樣靜靜地躺著,像睡著了一般斑鼻。 火紅的嫁衣襯著肌膚如雪蒋纬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,821評論 1 290
  • 那天卵沉,我揣著相機與錄音颠锉,去河邊找鬼法牲。 笑死史汗,一個胖子當著我的面吹牛,可吹牛的內容都是我干的拒垃。 我是一名探鬼主播停撞,決...
    沈念sama閱讀 38,960評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼悼瓮!你這毒婦竟也來了戈毒?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,719評論 0 266
  • 序言:老撾萬榮一對情侶失蹤横堡,失蹤者是張志新(化名)和其女友劉穎埋市,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體命贴,經...
    沈念sama閱讀 44,186評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡道宅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,516評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了胸蛛。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片污茵。...
    茶點故事閱讀 38,650評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖葬项,靈堂內的尸體忽然破棺而出泞当,到底是詐尸還是另有隱情,我是刑警寧澤民珍,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布襟士,位于F島的核電站,受9級特大地震影響嚷量,放射性物質發(fā)生泄漏陋桂。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,936評論 3 313
  • 文/蒙蒙 一津肛、第九天 我趴在偏房一處隱蔽的房頂上張望章喉。 院中可真熱鬧,春花似錦、人聲如沸秸脱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摊唇。三九已至咐蝇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間巷查,已是汗流浹背有序。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留岛请,地道東北人旭寿。 一個月前我還...
    沈念sama閱讀 46,370評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像崇败,于是被迫代替她去往敵國和親盅称。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,527評論 2 349

推薦閱讀更多精彩內容