1. 程式人生 > >(插播)關於使用jenkins + unity +Xcode 來進行自己主動打包的處理。

(插播)關於使用jenkins + unity +Xcode 來進行自己主動打包的處理。

數據 net host shell腳本 unity3 fig 模式 是我 菜單

近期了解了下jenkins流程化服務的東西,個人感覺jenkins是一個非常方便的工具。主要是方便。設置好流程性得命令。僅僅需確定下就能夠達到自己主動化。

減輕了錯誤得發生和簡化了帶來的復雜得步驟。今天我們就以jenkins用來編譯unity生成APK包和ipa文件 為樣例。做一個學習。

平時做項目須要團隊之間的合作。假設策劃想自己去做一個測試包,又要去找你做,還要打斷你的工作,去專門編譯一個包比較麻煩。

假設這時候。你已經有了一個jenkins得server。他能夠自己通過簡單得操作就能夠得到想要得包。沒有必要還要去麻煩你去自己動手一步步完畢這些繁瑣得步驟。


這裏我寫了一個文檔關於jenkins和unity搭建得一個文檔。 要得戳這裏

先貼出來。

首先了解下jenkins,是一個基於java的用來處理流程化的服務性質的工具。

缺點:配置較復雜長處:能夠運行.sh腳本。插件也比較多.

(我用得是mac電腦 所以在網上直接 下載 jenkins for mac 直接安裝即可)

1. 準備工作。首先是unity項目中我們在Assets/Editor 以下建立一個用來運行編譯的腳本。

比如PerformBuild.cs,,詳細代碼見文件裏的文件。

主要作用就是,使用代碼來做打包的工作。

2. 安裝jenkins(安裝包文件見目錄) step by step 安裝,它會自己主動啟動 Jenkins。

3. 開始使用jenkins。左側菜單是新建,任務歷史等等。

為了方面我們首先建立下面用戶。點擊左側菜單條中得-系統管理-configure Global Security 點擊-啟用安全 ,安全域:點擊 -jenkins專實用戶數據庫-同意用戶註冊 。授權策略:這裏先選-不論什麽用戶能夠做不論什麽事。然後保存。回到主界面在右上角就能夠註冊用戶了。接著進行註冊step by step 。

4. 回到主界面,點擊左邊菜單條-新建。寫入Item名稱(項目的名字)。選中-構建一個自由風格得軟件項目。點擊 OK ,開始配置項目。

5. 在配置項目之前。我們先下載幾個插件。回到主界面,點擊左邊菜單條的 –系統管理,點擊-管理插件選中-可選插件,然後在右上角有搜索框,分別輸入我們要找的Unity3d plugin,Xcode integration,GIT plugin,Gitlab hook plugin. 分別使用 -下載直接安裝。然後 重新啟動 Jenkins,命令是:http://localhost:8080/restart

6. 這裏有一個非常須要註意得地方,我們使用得是MAC電腦,對權限的東西要求非常高。而jenkins是默認安裝在/Users/Shared/Jenkins/Home中。並且jenkins的工作文件夾workSpace文件夾也在當中。

這是一個非常敏感得文件夾。須要我們頻繁得操作,會造成找不到文件夾非常多錯誤。我們能夠是用Terminal來改變文件夾權限,這樣非常得麻煩(舍棄)。我們還能夠用jenkins的從節點,把工作文件夾指向外面。操作:

回到主界面-系統管理-管理節點-新建節點,比如節點名字:unity4.5,選擇Dumb Slave,然後點擊OK。然後配置下節點。# of executors:這個是並發處理的多少。默認1就能夠了。遠程文件夾:比如:/Users/vika/Desktop/unity_prt/autobuild這個相當於主文件夾,待運行之後他會自己主動創建子文件夾(/workspace/項目名字/)(回來把unityproject的文件放在這個以下)。

使用方法:選擇-盡可能得使用這個節點。啟動方法:

Launch slave agents via Java Web Start,使用得是slave命令啟動的方式。Availability:Keep this slave on-line as much as possible,保持slavedos一直開啟。然後保存,回到管理節點。

點擊我們剛剛新建的unity4.5節點,看到節點未啟動,我們必須使用slave.jar(見目錄)來啟動它。

打開terminal(終端)。到slave.jar所在的目錄使用java -jar slave.jar -jnlpUrl http://localhost:8080/computer/unity4.5/slave-agent.jnlp)命令啟動unity4.5 節點。回到jenkins,刷新下,我們就能夠看到 unity4.5這個節點已經啟動。

7. 回到主界面。點擊我們建立的項目,點擊左側菜單中的-配置。

開始配置我們得項目。

從上往下,依次-項目名稱(保持不變),-描寫敘述(能夠不用寫)。-丟棄舊的構建(能夠設置,多少時間清理一次舊的構建),再往下能夠依據需求依次設置。

最後能夠看到Restrict where this project can be run:選擇剛剛新建得unity4.5。

高級選項:臨時沒用。

源代碼管理:這裏有幾種方式,我們當中就有我們剛剛下載得插件GIT,還有CVS。SVN等。本地的話就選None。

構建觸發器:(觸發項目構建的條件),這裏有幾種方式:

遠程觸發:設置令牌使用URL的方式來進行構建。

PollSCM:時間觸發能夠設置時間來控制,自己主動構建。剩下得兩個不經常使用。

構建:點擊添加構建步驟。我們是unity的項目。選擇invoke unity3d Editor。有兩個標題。unity3d installation name,這個是要選擇

假設沒有先保存,回到主界面,-系統管理-系統設置-unity3d,進行設置unity3d的安裝文件夾,/Applications/Unity/Unity.app,別名隨便起一個,然後保存,再次回到項目-配置中),

剛剛設置得別名,Editor command linearguments :這個使用用來運行unity 命令行的dos我這裏寫的是(-quit -batchmode-executeMethod PerformBuild.CommandLineBuildAndroid)能夠理解出我運行得是 項目中Editor文件夾中 PerformBuild腳本CommandLineBuildAndroid方法。這裏就會有一個疑問,這樣設置好了,jenkins怎麽知道我的項目文件夾那,這裏unity3d plugin他是默認在jenkins的默認(workspace/項目名字)文件夾的,所以有兩個選擇。要麽把自己的項目拷貝到(workspace/項目名字)文件夾,要麽在dos前面加入–projectpath 命令。我這裏選擇得拷貝到workspace。

CommandLineBuildAndroid方法是編譯android。假設還有編譯IOS的,在點擊-添加構建步驟,依照上面的方法依次來進行設置。

Unity的部分我們設置好了。如今是我們有了APK和xcode的project,以下我們來設置編譯Xcode的project。

點擊-添加構建步驟-Xocde。

General build settings : Target(不寫)。點擊-settings clean before build選擇yes,剩下得不選,Configuration這裏有兩個模式ReleaseDebug,看情況自己選擇。

Pack application and build .ipa:不選,我們使用命令來進行打包。

Code signing & OS X keychain options:code Signing Identity (這個是證書。協議得選擇。能夠任意打開一個xcode項目在項目的build settings中搜索code signing identity。能夠看到證書。比如。Iphone Developer:something (證書序號))。把證書寫上去。Embedded Profile:嵌入的配置文件(沒有能夠不填)。

Unlock Keychain:自己設置。

Advanced Xcode build options :這裏是設置xcode項目的文件夾,我們是unity的文件夾,這裏非常多不用設置, Xcode Project Directory設置,註意這裏的都是相對於workspace的文件夾。比如:../build/iPhone 。SDK:iphoneos7.1,這是編譯得SDK,設置為7.1。剩下得不用管。

編譯完了Xcode,我們這裏要設置下打包IPA。點擊 –添加構建步驟-Execute Shell。

這裏是書寫shell腳本。我們打包.app文件得命令是:(

xcrun -sdk iphoneos7.1PackageApplication -v/Users/username/Desktop/unity_prt/autobuild/workspace/build/iPhone/build/autobuild.app-o /Users/username/Desktop/unity_prt/autobuild/workspace/build/ipa/autobuild.ipa

),使用xcrun 來進行打包。

想把打包的文件和APK從project文件夾移動出來,使用CP命令。

cp -P/Users/username/Desktop/unity_prt/autobuild/workspace/build/android/autobulid.apk/Users/vika/Desktop/ftp/

)(

cp -P/Users/username/Desktop/unity_prt/autobuild/workspace/build/ipa/autobuild.ipa/Users/vika/Desktop/ftp/


(插播)關於使用jenkins + unity +Xcode 來進行自己主動打包的處理。