iOS持續(xù)集成:Jenkins篇

前言

大神們提出的一套開(kāi)發(fā)規(guī)范建議:持續(xù)集成+測(cè)試驅(qū)動(dòng)開(kāi)發(fā)(CI+TDD)。其中,持續(xù)集成即Continuous Integration,簡(jiǎn)稱(chēng)CI。Jenkinsfastlane是目前比較流行的兩種快速集成工具,這里介紹使用 Jenkins 完成iOS APP的持續(xù)集成。

Jekins安裝

Jenkins 是一個(gè)用Java編寫(xiě)的開(kāi)源的持續(xù)集成工具,提供了軟件開(kāi)發(fā)的持續(xù)集成服務(wù),可以監(jiān)控并觸發(fā)持續(xù)重復(fù)的工作,具有支持多平臺(tái)、插件拓展、開(kāi)源等。

Jenkins依賴(lài)于Java環(huán)境,首先需安裝和配置Java環(huán)境。(PS:是JDK,而非JRE)。

Jenkins的安裝有多種方式,這里介紹兩種:(PS:因?yàn)榘惭bJenkins的時(shí)候需要注意權(quán)限問(wèn)題)

使用brew安裝(推薦):

$ brew install jenkins

如果出錯(cuò),bash:brew: command not found,這是由于當(dāng)前環(huán)境沒(méi)有安裝homebrew。

安裝homebrew ,代碼執(zhí)行:

$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

安裝成功后,請(qǐng)重新安裝Jenkins:brew install jenkins

或者使用安裝包安裝:

前往Jenkins官網(wǎng),下載安裝包,選擇 Mac OS X :

Jenkins

安裝下載的安裝包,注意在 安裝類(lèi)型這步,選擇自定義,取消選擇 Start at boot as "jenkins" 這項(xiàng),因?yàn)榭赡茉诤竺嬗捎跈?quán)限的原因?qū)е翵enkins打包失?。?/p>

安裝成功后,瀏覽器會(huì)自動(dòng)打開(kāi)Jenkins網(wǎng)頁(yè)服務(wù),如果沒(méi)有打開(kāi),請(qǐng)?jiān)跒g覽器輸入 http://localhost:8080/。
如果不能打開(kāi) http://localhost:8080/ ,可能是Jenkins服務(wù)未開(kāi)啟:

Jekins啟用,輸入:

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

Jekins停用,輸入:

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

如果報(bào)錯(cuò):/Library/LaunchDaemons/org.jenkins-ci.plist: No such file or directory,
可以在命令行中輸入:

$ jenkins

此時(shí)Jenkins會(huì)在命令行里打印相關(guān)的運(yùn)行日志,再在瀏覽器里輸入: http://localhost:8080/
這種情況的話(huà),如果關(guān)閉執(zhí)行 $ jenkins 命令的命令行,Jenkins也會(huì)停止服務(wù)。

Jenkins配置

安裝成功后,瀏覽器會(huì)打開(kāi)Jenkins的服務(wù)網(wǎng)頁(yè):

根據(jù)提示,前往查看initialAdminPassword:

$ sudo cat /Users/Shared/Jenkins/Home/secrets/initialAdminPassword

如果沒(méi)有找到這個(gè)文件,可以在Jenkins日志里查找 initialAdminPassword字段 ,就可以看到密碼啦。不知道Jenkins的日志在哪,可以點(diǎn)擊頁(yè)面的(not sure where to find it?)

然后下一步,選擇安裝建議的插件:

插件安裝完畢后,創(chuàng)建用戶(hù),然后進(jìn)入了Jenkins的管理界面了。在創(chuàng)建新項(xiàng)目之前,我們需要安裝幾個(gè)插件,Git plugin 和 Xcode integration 和 Keychains and Provisioning Profiles Management。系統(tǒng)管理 -> 管理插件 -> 可選插件,搜索并安裝。

安裝好后,我們可以先到 系統(tǒng)管理 -> Keychains and Provisioning Profiles Management :

這里需要選擇 login.keychain ,在 /Users/{username}/Library/keychains/login.keychain 目錄里。如果不能通過(guò)選擇的話(huà),可以把login.keychain拷貝到桌面,然后在選擇上傳。

Code Signing Identity,可以添加多項(xiàng)。進(jìn)入鑰匙串,選擇開(kāi)發(fā)者證書(shū)或發(fā)布證書(shū),拷貝完全,粘貼至Jenkins的Code Signing Identity項(xiàng)里:

Provisioning Profiles Directory Path 填寫(xiě)成,注意替換為自己的username:

/User/{USERNAME}/Library/MobileDevice/Provisioning Profiles

然后保存。

創(chuàng)建項(xiàng)目

終于可以開(kāi)始創(chuàng)建項(xiàng)目了,點(diǎn)擊新建項(xiàng)目:

輸入項(xiàng)目名稱(chēng),選擇 構(gòu)建一個(gè)自由風(fēng)格的軟件項(xiàng)目,然后確定,進(jìn)入配置頁(yè)面。選擇源碼管理:

我們是Git的方式管理的,所以選擇git。

Repository URL 可以使用 HTTP 或 SSH 兩種形式的,這里需要注意,如果是采用 HTTP 形式的話(huà),后面配置 Credentials 需要選擇 Username with password 項(xiàng),輸入登錄用戶(hù)名和密碼:

如果是采用 SSH 形式的話(huà)(不要ssh://前綴),后面配置 Credentials 需要選擇 SSH Username with private key 項(xiàng),輸入用戶(hù)名(隨便輸入)和與Git上公鑰對(duì)應(yīng)的私鑰:

/Users/{username}/.ssh/id_rsa

如果紅色報(bào)錯(cuò)的話(huà),請(qǐng)核對(duì)Git地址和私鑰或用戶(hù)密碼對(duì)應(yīng)。

Branch Specifier (blank for 'any'):默認(rèn)是master,你可以根據(jù)實(shí)際情況進(jìn)行編輯。

構(gòu)建觸發(fā)器:可以選擇某種情況下觸發(fā)項(xiàng)目構(gòu)建,也可以不選。

構(gòu)建

點(diǎn)擊增加構(gòu)建步驟:

這里需要注意,如果你的項(xiàng)目是使用了cocoapods管理第三方庫(kù)的話(huà),這里需要增加一個(gè)腳本執(zhí)行的步驟:Execute shell -> Xcode(即下一步驟) ,順序不能錯(cuò)。這是因?yàn)椋掳姹镜腦code不能直接構(gòu)建.xcworksapce項(xiàng)目,需要使用腳本。(PS:如果不是cocoapods管理的可以直接跳過(guò)這步)

腳本內(nèi)容:

pod install
open Dispatcher.xcworkspace

配置Xcode

增加構(gòu)建步驟選擇Xcode:

依次填寫(xiě):
Target:一般為工程名,cocoapods管理的項(xiàng)目不需要填寫(xiě)
Clean before build:構(gòu)建前clean一下總是好的
Configuration:一般為Release
輸出ipa名稱(chēng):可以自定義,不填寫(xiě)則是采用默認(rèn)的格式
ipa存放目錄:$workspace/build/ 或者 其它。

Advanced Xcode build options

Xcode Schema File:如果你使用workspace,而不是project此項(xiàng)必填。與target類(lèi)似,填寫(xiě)你需要構(gòu)建的schema;
Xcode Workspace File:.xcworkspace文件的路徑,$WORKSPACE表示的是當(dāng)前項(xiàng)目的路徑,"/"后面就是.xcworkspace后綴的文件名,注意:這里不需要填寫(xiě)后綴;
Build output directory:系統(tǒng)默認(rèn)的Build目錄是CONFIGURATION_BUILD_DIR,上面設(shè)置的ipa包的輸出目錄,其實(shí)就是相對(duì)于這個(gè)目錄的路徑;建議填寫(xiě),比如填寫(xiě) $WORKSPACE/build。

點(diǎn)擊‘Save’,保存設(shè)置,開(kāi)始構(gòu)建吧。

選擇某一次構(gòu)建,點(diǎn)擊命令輸出(Console Output),查看構(gòu)建的過(guò)程。祝你好運(yùn)~

上傳至蒲公英

如果要上傳至測(cè)試平臺(tái)的話(huà),可以去查看測(cè)試平臺(tái)關(guān)于Jenkins的文檔。這里給出蒲公英的Jenkins上傳至平臺(tái)文檔:使用 Jenkins 實(shí)現(xiàn)持續(xù)集成(iOS)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容