近期瞭解了下jenkins流程化服務的東西,我的感受jenkins是一個很是方便的工具。主要是方便。設置好流程性得命令。僅僅需肯定下就可以達到本身主動化。java
減輕了錯誤得發生和簡化了帶來的複雜得步驟。今天咱們就以jenkins用來編譯unity生成APK包和ipa文件 爲樣例。作一個學習。android
平時作項目需要團隊之間的合做。假設策劃想本身去作一個測試包,又要去找你作,還要打斷你的工做,去專門編譯一個包比較麻煩。shell
假設這時候。你已經有了一個jenkins得server。他可以本身經過簡單得操做就可以獲得想要得包。沒有必要還要去麻煩你去本身動手一步步完畢這些繁瑣得步驟。數據庫
這裏我寫了一個文檔關於jenkins和unity搭建得一個文檔。 要得戳這裏xcode
先貼出來。 安全
首先了解下jenkins,是一個基於java的用來處理流程化的服務性質的工具。併發
缺點:配置較複雜長處:可以運行.sh腳本。插件也比較多.app
(我用得是mac電腦 因此在網上直接 下載 jenkins for mac 直接安裝便可)iphone
1. 準備工做。首先是unity項目中咱們在Assets/Editor 如下創建一個用來運行編譯的腳本。ide
好比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,保持slave得dos一直開啓。而後保存,回到管理節點。
點擊咱們剛剛新建的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這裏有兩個模式Release和Debug,看狀況本身選擇。
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/
)