1. 程式人生 > >使用Jenkins配置iOS自動化構建工具

使用Jenkins配置iOS自動化構建工具

 關於iOS自動化構建其實並不複雜,通過一些簡單的Git與Xcode指令,加上UI,我們自己也可以動手編寫一款自動化構建工具。這在之前的部落格中也有涉及,有興趣的朋友可以在如下地址找到這篇部落格:

       本篇部落格主要記錄使用Jenkins搭建iOS自動化構建專案的過程,關於Jenkins的更多自動化指令碼的應用,有機會後面再出專門的部落格介紹。

一、Jenkins的安裝與啟動

    Jenkins的安裝非常方面,在如下官網可以直接下載Jenkins的安裝包,其中有支援各個平臺的安裝包,選擇自己所需要的進行下載安裝即可。

   安裝完成後,Jenkins會自動啟動執行,在當前電腦的8080埠開啟一個Web應用服務,如果是第一次安裝啟動,我們需要配置一個賬戶作為初始使用者。

   對於在Mac上Jenkins的啟動,有兩種方式:

方式一:直接執行Java歸檔檔案啟動Jenkins

    如果是Mac電腦,Jenkins安裝完成後,在Applications目錄下會多出一個Jenkins資料夾,這個資料夾中包含一個jenkins.war的檔案,如下圖所示:

使用如下命令來啟動Jenkins:

java -jar /Applications/Jenkins/jenkins.war

使用這種方式啟動的Jenkins,要關閉服務需要找到Jenkins服務對應的PID,在終端輸入如下命令:

ps

在終端輸出的資訊中,可以看到Jenkins服務所對應的PID號,如下圖:

終端使用如下命令將此服務殺死即可:

kill -9 PID號

方式二:使用Mac的啟動進行控制器啟動Jenkins

    如果成功安裝了Jenkins,在Mac電腦磁碟的資源庫中的LaunchDaemons資料夾下可以找到Jenkins的啟動配置檔案,如下圖:

在命令列中執行如下命令即可啟動Jenkins服務:

sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist

使用如下命令關閉Jenkins服務:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

二、建立持續整合專案

    在Jenkins的主頁選擇新建一個專案,建立選項中,我們輸入專案名稱,並選擇構建一個自由風格的軟體,如下圖:

下一步將進入到專案配置介面,首先需要設定下通用的配置,如下圖:

其中,描述部分可以填寫專案的相關介紹,丟棄舊的構建設定構建記錄儲存的天數和最多保持多少個構建記錄等。

    原始碼管理的配置是比較重要的一步,其用來設定構建專案從哪裡拉取專案的原始碼以及進行原始碼更新的操作。如下圖:

如果使用的是Git倉庫,如上圖所示,需要配置專案的路徑,賬戶以及要進行構建的分支。賬戶的主要用途是使得Jenkins有許可權拉取專案的程式碼,如果之前沒有新增過,可以點選右側的Add按鈕進行新增,如下圖:

可以選擇配置使用者名稱加密碼的方式新增賬戶,也可以使用SSH公鑰的方式。

    下一步我們需要配置構建的觸發器,構建觸發器有多種形式,比如定時觸發構建,遠端觸發,程式碼提交後觸發等等,如下圖:

其中遠端觸發是指我們可以通過遠端訪問Jenkins伺服器地址加上令牌引數來觸發構建。

之後再構建一欄中選擇增加構建步驟->執行Shell,新增如下Shell指令碼:

export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
/usr/local/bin/pod install
xcodebuild -archivePath "/Users/Shared/Jenkins/Home/workspace/Jenkins專案名稱/你的專案名.xcarchive" -workspace 你的專案名.xcworkspace -sdk iphoneos -scheme "你的專案名" -configuration "Release" archive

xcodebuild -exportArchive -archivePath "/Users/Shared/Jenkins/Home/workspace/Jenkins專案名稱/你的專案名.xcarchive" -exportPath "/Users/Shared/Jenkins/Home/workspace/Jenkins專案名稱/buildIPA" -exportOptionsPlist '/Users/Shared/Jenkins/Home/workspace/Tictalk-iOS/ExportOptions.plist' -allowProvisioningUpdates
curl -F "[email protected]/Users/Shared/Jenkins/Home/workspace/Jenkins專案名稱/buildIPA/你的專案名.ipa"

上面指令碼中,xcodebuild -archivePath 命令用來編譯專案,如果你的專案沒有使用workspace,需要將命令中的workspace修改成project,configuration引數用來配置編輯的方式,Release為釋出環境。xcodebuild -exportArchive 命令用來到處API包,需要額外注意,提前我們需要在/Users/Shared/Jenkins/Home/workspace/Jenkins專案名稱/你的專案名這個目錄下新增一個ExportOptions.plist檔案,新Xcode如果不配置這個檔案是無法打包成功的。curl -F 命令是用來將打包好的IPA包自動上傳到蒲公英分發平臺。

    ExportOptions.plist檔案編寫格式如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>compileBitcode</key>
	<false/>
	<key>method</key>
	<string>ad-hoc(IPA包模式)</string>
	<key>provisioningProfiles</key>
	<dict>(下面設定bundleID對應的provisioningProfiles檔名)
		<key>com.***</key>
		<string>AD_HOC</string>
		<key>com.***.TKNotificationCentent</key>
		<string>Content</string>
		<key>com.***.TKNotificationService</key>
		<string>Service</string>
	</dict>(下面配置證書)
	<key>signingCertificate</key>
	<string>iPhone Distribution</string>
	<key>signingStyle</key>
	<string>manual</string>
	<key>stripSwiftSymbols</key>
	<true/>(下面配置teamID)
	<key>teamID</key>
	<string>KJYHPT****</string>
	<key>thinning</key>
	<string><none></string>
</dict>
</plist>

三、構建可能出錯的地方

    配置完了上面的指令碼,你可以嘗試點選立即構建按鈕進行構建,當然構建過程中極有可能會出錯,你可以根據log輸出檢查下是否是因為下面的問題。

1.git相關命令出錯

    可能是Jenkins找不到git所在位置,在Jenkins的系統設定中選擇全域性工具配置,配置git路徑如下圖所示:

2.pod相關命令出錯

   這一步出錯的可能性極大,首先你的電腦可以使用pod不代表jenkins使用者有使用pod的許可權,最好使用jenkins使用者登入電腦,進行pod的更新升級,或者直接使用jenkins使用者登入,找到我們的專案,手動使用pod進行第三方的安裝。

3.xcodebuild相關命令出錯

    和git命令出錯的問題基本一致,我們需要配置路徑。在Jenkins的系統設定中找到系統配置,設定xcode相關工具如下:

4.編譯過程中證書或配置檔案出錯

    首先確保你的應用證書放在了鑰匙串的系統分類下,如圖:

其次,需要將Provisioning Profiles檔案複製到下面的目錄下,切記:

/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profiles

最後,請確認可以使用Xcode手動進行編輯和打包。而且證書和Provisioning Profiles檔案一定要正確和匹配。

相關推薦

使用Jenkins配置iOS自動化構建工具

 關於iOS自動化構建其實並不複雜,通過一些簡單的Git與Xcode指令,加上UI,我們自己也可以動手編寫一款自動化構建工具。這在之前的部落格中也有涉及,有興趣的朋友可以在如下地址找到這篇部落格:        本篇部落格主要記錄使用Jenkins搭建iOS自動化構建專

持續整合、自動化構建工具Jenkins使用介紹

Jenkins 是一款流行的開源持續整合(Continuous Integration)工具,廣泛用於專案開發,具有自動化構建、測試和部署等功能。今天主要記錄下在window下部署,使用Jenkins自動化構建mvn專案的方法。首先確保java和maven正常工作。 (1).

自動化構建工具

java環境 cnblogs .com 自動化 java 一點 log 構建工具 ive 1. ant是一個將軟件編譯、測試、部署等步驟聯系在一起加以自動化的一個工具,大多用於java環境的軟件開發。 詳解見:http://www.cnblogs.com/huozhiche

gulp自動化構建工具使用總結

名稱 測試 構建工具 3.2 str 鏡像 運行 sta cnp 簡介: gulp是前端開發過程中對代碼進行構建的工具,是自動化項目的構建利器;她不僅能對網站資源進行優化,而且在開發過程中很多重復的任務能夠使用正確的工具自動完成;使用她,我們不僅可以很愉快的編寫代碼,而且

JavaScript自動化構建工具入門----grunt、gulp、webpack

cli 簡單 cpu占用率高 mini tco get %20 pan 情況 蠻荒時代的程序員: 做項目的時候,會有大量的js 大量的css 需要合並壓縮,大量時間需要用到合並壓縮 在前端開發中會出現很多重復性無意義的勞動 自動化時代的程序員: 希望一切都可以自動完

前端自動化構建工具-gulp

出現 ssa uglify 提醒 連接 變化 監聽 前端 復雜 gulp 和grunt這兩個是我知道的自動構建工具,但是說實話都沒在項目中用過,不太清楚自動化構建是什麽意思, 1、grunt和gulp有什麽相同點和不同點?   (1)、易於使用:采用代碼優於配置策略,gul

自動化構建工具—gulp的用法簡單總結

修復 git func 文件夾 open lean 發生 遍歷 nod   把之前用到的gulp總結整理下,有時候說不出來的,就寫出來吧,做個筆記,以後也可以慢慢補充   cnpm i --save-dev gulp 把nodejs模塊寫到package.json配置文件中

JMeter接口測試系列:Jmeter+jenkins+ant 的自動化構建

security pub des courier jar status type plugin jmeter 在JMeter接口測試不斷深入的過程中,發現可以和jenkins和ant一起搭配進行自動化的構建。下面是jmeter自動化構建的整理筆記。 準備環境 需要本機上確定

gulp.js 自動化構建工具學習入門

http pat 圖片壓縮 pan 同時 sset ati 獲取文件 sheet 一、基本安裝 1、安裝gulp 1 $ npm install --global gulp 2、作為項目的開發依賴安裝 1 $ npm install --save-dev gulp

做一個合格的前端,gulp自動化構建工具入門教程

安裝完成 基本 合成 node.js 文件替換 mage 9.png basename 加載 我的新作觀點網http://www.guandn.com (觀點網是一個獵獲新奇、收獲知識、重在獨立思考的網站),它前端js、css的壓縮、合並、md5命名等就使用了gulp自動化

前端自動化構建工具Gulp簡單入門

margin 構建工具 function col 處理 .com order lis web 昨天聽同事分享了Gulp的一些簡單使用,決定自己也試一試。 一、安裝   gulp是基於nodejs的,所以要先下載安裝node(直接搜node,在官網下載就好了)   1、全局安

gulp自動化構建工具使用

min() 方法 json 圖片 打印 efault under ... 執行 gulpfile.js: var gulp = require("gulp"); var imagemin = require("gulp-imagemin");//壓縮圖片插件 var ug

前端自動化構建工具

urn 自身 合並文件 limit ase 有效 www. javascrip 路徑配置 全局安裝是把包安裝在Node安裝目錄下的node_modules文件夾中,一般在 \Users\用戶名\AppData\Roaming\ 目錄下,可以使用npm root -g查看全局

自動化構建工具WebPack

als dirname 沖突 js文件 什麽是 bpa 一個 art env Webpack中文文檔:https://www.webpackjs.com/ 什麽是 Webpack? webpack 是一個模塊打包器。webpack 的主要目標是將 JavaScript 文件

Jenkins配置項目構建後的釘釘通知

image 配置 目的 添加 開放 自定義 任務 web 機制 首先在任意一個釘釘群裏創建自定義的釘釘機器人,然後能夠看到釘釘開放的webhook 復制webhook Jenkins中安裝釘釘插件,然後在項目的配置當中,構建後操作裏添加釘釘報警 url一般默認已經有了,w

詳細講解自動化構建工具gulp使用

gulp是是前端開發對程式碼進行構建的工具,是基於 Nodejs 的自動任務執行器,他能自動化地完成 javascript/coffee/sass/less/html/image/css 等檔案的的測試、檢查、合併、壓縮、格式化、瀏覽器自動重新整理、部署檔案生成,並監聽檔案在改動後重復指定的這些步驟

自動化構建工具--gulp的初識和使用

gulp  首先:什麼是gulp? gulp是前端開發過程中對程式碼進行構建的工具,是自動化專案的構建利器;她不僅能對網站資源進行優化,而且在開發過程中很多重複的任務能夠使用正確的工具自動完成;使用她,我們不僅可以很愉快的編寫程式碼,而且大大提高我們的工作效率。 安裝使用示例: 首先新建一個

Gulp(自動化構建工具 )

前言 Gulp,簡而言之,就是前端自動化開發工具,利用它,我們可以提高開發效率。 比如:   1、  壓縮js   2、  壓縮css   3、  壓縮less   4、  壓縮圖片   等等… 我們完全可以利用Gulp來自動化地完成這些重複性很強的工作。 Gulp可以幫助我們 用自動化構建

Linux專案自動化構建工具---make/makefile

背景    1. 會不會寫makefile,從側面說明了一個人是否具備完成大型工程的能力。    2. 一個工程的原始檔不計其數,其按型別,功能,模組分別放在若干個目錄裡,makefile定義了一系列的規則來指定,哪些檔案需要先編譯,哪些檔案需要重新編譯,

前端自動化構建工具——gulp

操作過程: 需要配置檔案後才能執行 $ gulp命令 (1)配置一些基本資訊,執行命令:$ npm init 在git指令中,對下面每一項進行配置,注意:GitHub專案的資訊與配置檔案一一對應,如果先關聯了GitHub專案,那麼下面的基本配置中的GitHub專案資訊將