IOS項(xiàng)目(二)自動(dòng)打包--Jenkins

@TOC

一瓢阴,Jenkins概述

Jenkins 是一款流行的開(kāi)源持續(xù)集成(Continuous Integration)工具络拌,廣泛用于項(xiàng)目開(kāi)發(fā)鬼癣,具有自動(dòng)化構(gòu)建饵骨、測(cè)試和部署等功能翘悉。Jenkins起源于Hudson(Hudson是商用的),主要用于持續(xù)居触、自動(dòng)的構(gòu)建/測(cè)試軟件項(xiàng)目妖混、監(jiān)控外部任務(wù)的運(yùn)行(這個(gè)比較抽象,暫且寫(xiě)上轮洋,不做解釋?zhuān)┲剖小enkins用Java語(yǔ)言編寫(xiě),可在Tomcat等流行的servlet容器中運(yùn)行弊予,也可獨(dú)立運(yùn)行祥楣。通常與版本管理工具(SCM)、構(gòu)建工具結(jié)合使用块促。常用的版本控制工具有SVN荣堰、GIT,構(gòu)建工具有Maven竭翠、Ant振坚、Gradle。

在這里插入圖片描述

二斋扰,Jenkins安裝

1. 下載Jenkins官網(wǎng)

2. 安裝 JDK/Maven

export JAVA_HOME=/usr/java/jdk1.8.0_111
export MAVEN_HOME=/opt/apache-maven-3.3.9
  • 四種安裝方式:
  1. 離線安裝
## http://pkg.jenkins-ci.org/redhat/
wget http://pkg.jenkins-ci.org/redhat/jenkins-2.39-1.1.noarch.rpm ## 下載(也可以Windows下載再轉(zhuǎn)過(guò)來(lái))
sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins.io.key ## 公鑰
sudo yum -y install jenkins-*.noarch.rpm


  1. 在線安裝
## http://pkg.jenkins-ci.org/redhat/
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key
sudo yum -y install jenkins


  1. 基于 Tomcat 安裝
  • 安裝并啟動(dòng) Tomcat渡八;
  • 從官網(wǎng)下載 jenkins.war至 $CATALINA_BASE/webapps,Tomcat 會(huì)自動(dòng)部署传货;
  • 瀏覽器訪問(wèn):http://centos:8080/jenkins/
  1. 免安裝方式
wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war
sudo java -jar jenkens.war ## 啟動(dòng)服務(wù)屎鳍,直至看到日志 `Jenkins is fully up and running`
curl http://localhost:8080/ ## Jenkins 已就緒


3. 調(diào)整配置文件

## sudo vim /etc/sysconfig/jenkins
JENKINS_USER="root" ## 原值 "jenkins" 必須修改,否則權(quán)限不足
JENKINS_PORT="8080" ## 原值 "8080" 可以不修改
## 還有開(kāi)啟 HTTPS 相關(guān)參數(shù)问裕,此處不打算開(kāi)啟逮壁,故不作說(shuō)明


安裝目錄: /usr/lib/jenkins
工作目錄: /var/lib/jenkins(對(duì)應(yīng)于環(huán)境變量 JENKINS_HOME)

4. 啟動(dòng)

sudo systemctl enable jenkins
sudo systemctl restart jenkins

查看日志文件: sudo tail -f /var/log/jenkins/jenkins.log

啟動(dòng)后會(huì)生成文件 hudson.model.UpdateCenter.xml撤卢,需要修改它怯屉,
否則瀏覽器首次進(jìn)入時(shí)會(huì)卡在“Jenkins 正在啟動(dòng)狗热,請(qǐng)稍后…”

## 原值: http://updates.jenkins-ci.org/update-center.json
## 新值: http://mirror.xmission.com/jenkins/updates/update-center.json
## 或者: http://mirror.xmission.com/jenkins/updates/current/update-center.json
sudo cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
sudo sed -i 's/updates.jenkins-ci.org/mirror.xmission.com\/jenkins\/updates/g' /var/lib/jenkins/hudson.model.UpdateCenter.xml
sudo cat /var/lib/jenkins/hudson.model.UpdateCenter.xml
sudo systemctl restart jenkins

5. 防火墻放行

### sudo vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
### 重啟生效: sudo systemctl restart iptables

6. 卸載

如果要重裝滤灯,或者本機(jī)不需要 Jenkins,可卸載:

sudo systemctl stop jenkins
sudo systemctl disable jenkins
sudo yum -y remove jenkins
sudo rm -rf /var/{lib,log,cache}/jenkins /usr/lib/jenkins /root/.jenkins
sudo rm -rf `sudo find /{etc,var,run} -name "jenkins*"`

7. mac 下安裝

  • 使用osx系統(tǒng)自帶的homebrew來(lái)安裝jenkins
  1. 需要安裝至少java1.8 忧饭,如果沒(méi)有安裝會(huì)有提示扛伍,下載jdk1.8
    在這里插入圖片描述
  2. java安裝完畢,繼續(xù)下面步驟词裤,鏈接 launchd 配置文件
$ ln -sfv/usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents  
//如果要其他機(jī)器也可以訪問(wèn)刺洒,把ip地址改為廣播地址:--httpListenAddress=0.0.0.0
$ launchctl load~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
  1. 命令行啟動(dòng)Jenkins
$ jenkins
  1. 一切順利的話,打開(kāi)瀏覽器輸入:http://localhost:8080/
    就能看到j(luò)enkins已經(jīng)運(yùn)行起來(lái)了吼砂,如果你更換了端口就是你后來(lái)設(shè)置的端口逆航。

接下來(lái)打開(kāi)Jenkins后會(huì)讓去一個(gè)填寫(xiě)password的頁(yè)面如下圖,存儲(chǔ)password的地方就是圖片上那行紅色字體目錄下帅刊,使用終端 cat + 紅色字體路徑就看到了

在這里插入圖片描述

然后將我們得到的password輸入到“Administrator password“中纸泡,即可進(jìn)入如下界面漂问,接著安裝一些建議的插件(左邊的)赖瞒,安裝過(guò)程中,有的插件可能會(huì)安裝失敗蚤假,強(qiáng)烈建議點(diǎn)擊右下角的重試栏饮,直到把建議安裝的都裝好。(因?yàn)槲疫@邊安裝之后磷仰,在Jenkins插件管理安裝插件一直失敗袍嬉,如果這一步?jīng)]把有些必須的插件裝好,如git灶平,只能一個(gè)個(gè)下載上傳插件就很麻煩)

在這里插入圖片描述

插件安裝完成后伺通,可能會(huì)卡在如下界面,不會(huì)自動(dòng)跳轉(zhuǎn)逢享,刷新下界面即可:


在這里插入圖片描述

在刷新后的界面中注冊(cè)罐监,輸入用戶(hù)名和密碼,建議輸入后點(diǎn)藍(lán)色按鈕保存完成瞒爬,如下:


在這里插入圖片描述

注冊(cè)成功后弓柱,點(diǎn)擊”Start using Jenkins”

三,Jenkins配置

1. 登錄

瀏覽器進(jìn)入 http://centos:8080/
首次進(jìn)入需要輸入初始密碼來(lái)解鎖侧但,初始密碼查看方法: sudo cat /var/lib/jenkins/secrets/initialAdminPassword

在這里插入圖片描述

進(jìn)入 Jenkins 定制界面矢空,讓選擇 Install suggested plugins 或 Select plugins to install 時(shí),兩者都不要選禀横,直接關(guān)閉屁药,下一個(gè)界面點(diǎn)擊“Start using Jenkins”;
在這里插入圖片描述

修改登錄密碼:主界面右上角“注銷(xiāo)”鏈接的左邊的用戶(hù)名下拉菜單中點(diǎn)“設(shè)置”柏锄。

2. 安全設(shè)置

默認(rèn)情況下酿箭,任何用戶(hù)都可以使用 Jenkins 進(jìn)行發(fā)布立莉。
可以進(jìn)入相關(guān)設(shè)置:系統(tǒng)管理 / Configure Global Security,
選擇 Jenkins專(zhuān)有用戶(hù)數(shù)據(jù)庫(kù),不要選中 允許用戶(hù)注冊(cè)七问;
選擇 登錄用戶(hù)可以做任何事蜓耻,選中 Allow anonymous read access

3. 插件安裝方法

  • 離線安裝:
    手工下載(*.hpi): http://updates.jenkins-ci.org/download/plugins/
    進(jìn)入:系統(tǒng)管理 / 管理插件 / 高級(jí),然后上傳插件進(jìn)行安裝械巡。
    無(wú)需重啟 Jenkins 插件即生效刹淌。
  • 在線安裝:
    進(jìn)入:系統(tǒng)管理 / 管理插件 / 可選插件
    查找并勾選所需插件,點(diǎn)擊“直接安裝”讥耗;
    無(wú)需重啟 Jenkins 插件即生效有勾。如遇失敗可重試或離線安裝。


    在這里插入圖片描述

4. 工具設(shè)置

進(jìn)入:系統(tǒng)管理 / Global Tool Configuration
JDK 下不勾選“自動(dòng)安裝”古程,指定別名=JDK-1.8.0.111, JAVA_HOME=/usr/java/jdk1.8.0_111
Maven 下不勾選“自動(dòng)安裝”蔼卡,指定別名=Maven-3.3.9, MAVEN_HOME=/opt/apache-maven-3.3.9
點(diǎn)擊 Save 按鈕。
重啟 Jenkins 后生效:sudo systemctl restart jenkins

在這里插入圖片描述

5. 安裝ios打包需要插件

  1. 管理本地的keychain和iOS證書(shū)的插件Keychains and Provisioning Profiles Management
  2. 用于xcode構(gòu)建Xcode integration

安裝方式:
方案一:在可選中搜索插件名 挣磨,勾選安裝雇逞。若安裝報(bào)錯(cuò)(參照安裝Jenkins時(shí)不能聯(lián)網(wǎng)安裝插件問(wèn)題解決),如果還不行茁裙,直接進(jìn)入方案二塘砸。

在這里插入圖片描述

方案二:去Jenkins-plug官網(wǎng)下載插件,然后選擇高級(jí)tab晤锥,上傳.hpi文件

在這里插入圖片描述

6. IOS 打包前配置

  1. 配置Keychains and Provisioning Profiles Management
    接下來(lái)配置Keychains and Provisioning Profiles Management掉蔬,根據(jù)順序選擇首頁(yè)>系統(tǒng)管理>Keychains and Provisioning Profiles Management如圖


    在這里插入圖片描述

    需要上傳login.keychain文件,該文件獲取方法矾瘾,在終端中輸入:

cd ~/Library/Keychains

在終端鍵入ls詳見(jiàn)下圖


在這里插入圖片描述

將login.keychain文件upload之后女轿,會(huì)出現(xiàn)下圖的界面,根據(jù)需要將證書(shū)添加進(jìn)去即可壕翩,但是由于macOS10.12以及以后的系統(tǒng)里面沒(méi)有l(wèi)ogin.keychain文件蛉迹,只有l(wèi)ogin.keychain-db,可以復(fù)制出來(lái)刪除-db,也可以創(chuàng)建一個(gè)快捷方式名字叫做login.keychain戈泼,upload就好了婿禽。(上傳keychain,路徑用自己改名后的那個(gè))
關(guān)于code sign ident 這個(gè)怎么來(lái)的 其實(shí)只是在keychain中找到對(duì)應(yīng)的證書(shū)完整復(fù)制名字貼進(jìn)去即可


在這里插入圖片描述

然后添加Provisioning Profiles大猛,上傳方法和上傳login.keychain一樣扭倾,去選擇Provisioning Profiles文件,然后upload挽绩,然后結(jié)果如下圖膛壹,藍(lán)色框內(nèi)的是固定格式的/Users/用戶(hù)名/Library/MobileDevice/Provisioning Profiles (這是固定格式,只需要把用戶(hù)名替換成自己的mac用戶(hù)名即可,可以試著用終端一層層進(jìn)入 cd /Users/用戶(hù)名/Library/MobileDevice)
在這里插入圖片描述
  1. 配置任務(wù)
    然后創(chuàng)建一個(gè)任務(wù)模聋,自由風(fēng)格的任務(wù)肩民,因?yàn)闃?gòu)建方法會(huì)有兩種,除了共同的地方,構(gòu)建會(huì)分為兩部分解答链方,第一部分是macOS10.12以前的構(gòu)建方法持痰,但是由于Jenkins的Xcode和Mac的系統(tǒng)版本問(wèn)題,所以建議使用第二種方法祟蚀。

創(chuàng)建一個(gè)自由風(fēng)格的任務(wù)工窍,然后在選擇丟棄舊的構(gòu)建,至于天數(shù)和保持的最大個(gè)數(shù)前酿,按照自己的需求來(lái)就好患雏,如圖


在這里插入圖片描述
  • 源碼管理
在這里插入圖片描述

Git: 支持主流的github 和gitlab代碼倉(cāng)庫(kù)。因我們的研發(fā)團(tuán)隊(duì)使用的是gitlab罢维,所以下面我只會(huì)對(duì)該項(xiàng)進(jìn)行介紹淹仑。
Repository URL:倉(cāng)庫(kù)地址Credentials:憑證》畏酰可以使用HTTP方式的用戶(hù)名密碼匀借,也可以是RSA文件。 但要通過(guò)后面的"ADD"按鈕添加憑證悬槽。
Branches to build:構(gòu)建的分支怀吻。*/master表示master分支瞬浓,也可以設(shè)置為其他分支初婆。
源碼瀏覽器:你所使用的代碼倉(cāng)庫(kù)管理工具,如github, gitlab. URL:填入上方的倉(cāng)庫(kù)地址即可猿棉。
Version: 8.7 這個(gè)是我們gitlab服務(wù)器的版本磅叛。
Subversion:就是SVN,這里不作介紹萨赁。

在Repository URL里面添加你的git地址弊琴,我這里添加的是http的,如果你的項(xiàng)目是使用的ssh的杖爽,那么就將git開(kāi)頭的地址填寫(xiě)上敲董,然后店家Add添加你的git帳號(hào),如果你的事ssh的慰安,將ssh的密匙填寫(xiě)上腋寨,具體的自己百度一下就好咯,我就不多寫(xiě)了化焕,結(jié)果如圖


在這里插入圖片描述
  • 構(gòu)建觸發(fā)器
    構(gòu)建觸發(fā)器萄窜,顧名思義,就是構(gòu)建任務(wù)的觸發(fā)器
在這里插入圖片描述

觸發(fā)遠(yuǎn)程構(gòu)建(例如,使用腳本): 該選項(xiàng)會(huì)提供一個(gè)接口查刻,可以用來(lái)在代碼層面觸發(fā)構(gòu)建键兜。這里不做介紹,后期可能會(huì)用到穗泵。

Build after other projects are built: 該選項(xiàng)意思是"在其他projects構(gòu)建后構(gòu)建"普气。這里不作介紹,后期可能會(huì)用到該選項(xiàng)佃延。

Build periodically: 周期性的構(gòu)建棋电。很好理解,就是每隔一段時(shí)間進(jìn)行構(gòu)建苇侵。日程表類(lèi)似 linux crontab書(shū)寫(xiě)格式赶盔。如下圖的設(shè)置,表示每隔30分鐘進(jìn)行一次構(gòu)建榆浓。

Build when a change is pushed to GitLab:當(dāng)有更改push到gitlab代碼倉(cāng)庫(kù)于未,即觸發(fā)構(gòu)建。后面會(huì)有一個(gè)觸發(fā)構(gòu)建的地址陡鹃,一般被稱(chēng)為webhooks烘浦。需要將這個(gè)地址配置到gitlab中,webhooks如何配置后面介紹萍鲸。這個(gè)是常用的構(gòu)建觸發(fā)器闷叉。

Poll SCM:該選項(xiàng)是配合上面這個(gè)選項(xiàng)使用的。當(dāng)代碼倉(cāng)庫(kù)發(fā)生改動(dòng)脊阴,jenkins并不知道握侧。需要配置這個(gè)選項(xiàng),周期性的去檢查代碼倉(cāng)庫(kù)是否發(fā)生改動(dòng)嘿期。

構(gòu)建觸發(fā)器品擎,也就是什么時(shí)候觸發(fā)自動(dòng)打包我這里填寫(xiě)的是H 20 * * 這個(gè)意思就是H小時(shí)然后,后面跟著數(shù)字备徐,在后面就是日月年萄传,代表的我認(rèn)為是每次都觸發(fā),也就是每天每月每年蜜猾,但是Jenkins的時(shí)間不是絕對(duì)的秀菱,一般都是在隨機(jī)在半點(diǎn),也就是設(shè)置20點(diǎn)蹭睡,大概會(huì)在20:30分左右會(huì)觸發(fā)衍菱,如果需要兩個(gè)時(shí)間,那么格式可以這樣H 20,22 * * *結(jié)果如圖

在這里插入圖片描述
  • 構(gòu)建環(huán)境
    在構(gòu)建環(huán)境里面勾選Keychains and Code Signing Identities和Mobile Provisioning Profiles棠笑,Keychains and Code Signing Identities是打包需要的證書(shū)梦碗,Mobile Provisioning Profiles是打包需要的配置文件,都是可以自己選擇的
在這里插入圖片描述

7. iOS 打包構(gòu)建

接下來(lái)就是構(gòu)建了,因?yàn)镴enkins對(duì)新版的Xcode插件兼容不好洪规,只能用腳本來(lái)打包印屁,但是老版本的Xcode可以使用Jenkins的Xcode插件,下面將構(gòu)建一為使用Xcode插件的斩例,構(gòu)建二是腳本的

7.1 使用Xcode插件

在構(gòu)建里面點(diǎn)擊增加構(gòu)建步驟雄人,然后點(diǎn)擊Xcode.General build settings在Target里面填寫(xiě)你的項(xiàng)目名稱(chēng),Clean before build勾選YES念赶,勾選Pack application, build and sign .ipa?础钠,然后會(huì)有新的選項(xiàng)Export method是你要打的包的類(lèi)型,就是你在手動(dòng)打包的時(shí)候選額的ad-hoc或者Appstore那四個(gè)選項(xiàng)叉谜,這個(gè)按照你要打的類(lèi)型填寫(xiě)旗吁,.ipa filename pattern是你打出包ipa的名字,我的這里填寫(xiě)了項(xiàng)目名字和-$(BUILD_DATE)停局,意思就是在后面追加時(shí)間很钓,Output directory是導(dǎo)出ipa的目錄,如果不填寫(xiě)董栽,會(huì)在Jenkins默認(rèn)的目錄.

在這里插入圖片描述

Code signing & OS X keychain options勾選Unlock Keychain?,在Keychain path那里填寫(xiě)${HOME}/Library/Keychains/login.keychain,意思是找到你的login.keychain(登陸鑰匙串)码倦,如果你的是復(fù)制出來(lái)改的名字,那么就填寫(xiě)你相對(duì)應(yīng)的目錄锭碳,Keychain password就是你電腦的登陸密碼袁稽。詳見(jiàn)圖

在這里插入圖片描述

Advanced Xcode build options勾選Clean test reports?,如果你使用了cocoapods那么填寫(xiě)Xcode Workspace File擒抛,如果沒(méi)有使用cocoapods填寫(xiě)Xcode Project Directory推汽,然后填寫(xiě)B(tài)uild output directory就是你到處ipa的路徑,


在這里插入圖片描述

完成之后,回到任務(wù)操作頁(yè)面闻葵,點(diǎn)擊立即構(gòu)建民泵,如果配置沒(méi)問(wèn)題基本就能構(gòu)建成功。


在這里插入圖片描述

偶爾會(huì)出現(xiàn)報(bào)錯(cuò)槽畔,點(diǎn)擊任務(wù)編號(hào),也就是上圖的#4#5#6胁编,然后進(jìn)入任務(wù)詳情頁(yè)厢钧,進(jìn)入控制臺(tái)輸出看看哪里出了問(wèn)題,我之前是報(bào)了profile文件不匹配的error(target填錯(cuò)了)嬉橙,然后改了就好了

在這里插入圖片描述

對(duì)應(yīng)目錄生成了文件早直,所生成的內(nèi)容也是需要自己選擇配置的

對(duì)應(yīng)目錄生成了文件,所生成的內(nèi)容也是需要自己選擇配置的

7.2 使用腳本構(gòu)建

蒲公英上傳請(qǐng)參考:蒲公英
因?yàn)镴enkins對(duì)現(xiàn)在的Xcode9插件兼容性不好市框,打不了包霞扬,所以我們使用了xcodebuild打包,下面是腳本:

#!/bin/sh  #因?yàn)镴enkins打包可能是自動(dòng)的,那么build號(hào)是不會(huì)自己再去修改然后push到git上面的喻圃,所以這個(gè)buildPlist就是修改build號(hào)的路徑萤彩。 

buildPlist="/Users/apple/.jenkins/workspace/longxin_a/eCloud/Build/LongHu/Config/eCloud-Info.plist"  
#這個(gè)獲取現(xiàn)在的 月日時(shí)分 用它來(lái)做build號(hào) 
buildNumber=$(date +"%m%d%H%M") 
 #修改plist文件需要/usr/libexec/PlistBuddy -c命令,CFBundleVersion是修改的這個(gè)build號(hào)斧拍,
# $buildNumber是你要修改的數(shù)值雀扶,$buildPlist是你修改哪個(gè)地方的plist文件。
 /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "$buildPlist" 
 #這個(gè)是獲取當(dāng)前的build號(hào)肆汹,本來(lái)是用來(lái)看看有沒(méi)有修改成功的 #newBuildName=$(/usr/libexec/PlistBuddy -c "print :CFBundleVersion" "$buildPlist")
  #這個(gè)是打印愚墓,帶自動(dòng)換行的打印 
  echo $newBuildName  
   #因?yàn)槲遗滤薷膒list的時(shí)候需要時(shí)間,所以索性在這里我讓他等了3秒昂勉,當(dāng)然你也可以去掉 sleep 3  
   #這個(gè)buildPath是到時(shí)候我生成xcarchive文件的路徑和打ipa時(shí)候需要找到xcarchive的路徑 
   buildPath="/Users/apple/.jenkins/workspace/longxin_a/build/Release-iphoneos/eCloud.xcarchive"  
   #這個(gè)路徑是我生成ipa的路徑 ipaPath="/Users/apple/Documents/longhuBuild/" 
    #這個(gè)是ExportOptions.plist的路徑浪册,有這個(gè)就不用在用腳本寫(xiě)證書(shū)了,這個(gè)plist你只要手動(dòng)打過(guò)包岗照,那么在生成ipa的文件夾里面就會(huì)有议经,找一個(gè)自己不經(jīng)常修改的地方放在那里,寫(xiě)上這個(gè)路徑就好谴返,當(dāng)然如果你不想這么做煞肾,想用shell語(yǔ)言設(shè)置證書(shū),我會(huì)在 問(wèn)題 列表里面有介紹 
    exportOptionsplistPath='/Users/apple/.jenkins/workspace/ExportOptions.plist'  
    #因?yàn)槲沂褂昧薱ocoapods所以這里用的-workspace嗓袱,如果你沒(méi)有使用cocoapods使用-project籍救,下面的命令都一樣 #這個(gè)命令主要是用來(lái)clean,clean的是Release的路徑渠抹,clean的是/Users/app***eCloud.xcworkspace路徑的eCloud蝙昙, 
    xcodebuild -workspace /Users/apple/.jenkins/workspace/longxin_a/eCloud.xcworkspace -scheme eCloud -configuration "Release" clean 
     #這個(gè)是生成xcarchive,Release的 
     xcodebuild -workspace /Users/apple/.jenkins/workspace/longxin_a/eCloud.xcworkspace -scheme eCloud -archivePath ${buildPath} -configuration "Release" archive  
     #這個(gè)是將xcarchive文件打包成ipa 
     xcodebuild -exportArchive -archivePath ${buildPath} -exportPath ${ipaPath} -exportOptionsPlist ${exportOptionsplistPath} -allowProvisioningUpdates


8. 郵箱通知

Jenkins是有郵件通知的∥嗳矗現(xiàn)在開(kāi)始設(shè)置奇颠,首先你已經(jīng)安裝了插件Email Extension Plugin,這個(gè)在插件那里直接安裝就好這是第一步放航;然后進(jìn)入系統(tǒng)管理->系統(tǒng)設(shè)置找到Jenkins Location模塊烈拒,在系統(tǒng)管理員郵件地址填寫(xiě)你的系統(tǒng)管理郵箱,這個(gè)郵箱是你發(fā)送通知郵件的郵箱广鳍,然后找到Extended E-mail Notification模塊

在這里插入圖片描述
在這里插入圖片描述

然后找到構(gòu)建后操作荆几,點(diǎn)擊增加構(gòu)建后的操作步驟點(diǎn)擊Editable Email Notification,在Project From里面寫(xiě)上管理者郵箱赊时,也就是發(fā)送郵件的郵箱吨铸,然后點(diǎn)擊Advanced Setting;里面有三個(gè)選項(xiàng),分別是你在系統(tǒng)設(shè)置里面勾選的那幾個(gè)祖秒,根據(jù)需求填寫(xiě)就好诞吱,我這里填寫(xiě)的是Always舟奠,也就是無(wú)論構(gòu)建成功還是失敗,Recipient List是接收者的郵箱,這里多個(gè)郵箱用英文逗號(hào)隔開(kāi)——’,’

在這里插入圖片描述

9. 上傳到fir

  1. 先去下載fir插件
  2. 然后在Jenkins里面點(diǎn)擊系統(tǒng)管理->管理插件->高級(jí)房维,然后滑動(dòng)到上傳插件那里沼瘫,選擇剛才下載的插件,點(diǎn)擊上傳握巢,等待上傳成功后晕鹊,進(jìn)入到你的項(xiàng)目配置里面滑動(dòng)到最下面,也就是找到構(gòu)建后操作暴浦,點(diǎn)擊增加構(gòu)建后操作步驟溅话,選擇Upload to fir.im,打開(kāi)你的瀏覽器歌焦,打開(kāi)fir官方網(wǎng)站,獲取方法見(jiàn)圖
在這里插入圖片描述
  1. 然后輸入你的IPA/APK Files (optional)這個(gè)是你ipa的路徑飞几,如果不選擇,會(huì)是Jenkins默認(rèn)的路徑這里有fir的官方文檔独撇,根據(jù)fir的官方文檔即可就可以Jenkins上傳到fir文檔到此為止關(guān)于Jenkins整合Xcode的配置項(xiàng)并自動(dòng)上傳到蒲公英差不多就說(shuō)好了屑墨。

10. 修改密碼

jenkins 密碼錯(cuò)誤去掉密碼登錄(mac路徑為/Users/用戶(hù)名/.jenkins)

Jenkins 修改登錄密碼

Jenkins 卸載

11. 相關(guān)配置

11.1 SSH Server配置
  1. 登錄jenkins -- 系統(tǒng)管理 -- 系統(tǒng)設(shè)置
  2. 在這里插入圖片描述

    SSH Servers: 由于jenkins服務(wù)器公鑰文件我已經(jīng)配置好,所以之后新增SSH Servers 只需要配置這一項(xiàng)即可纷铣。
    Name: 自定義卵史,需要全局唯一。
    HostName: 主機(jī)名搜立,直接用ip地址即可以躯。
    Username: 新增Server的用戶(hù)名,這里配置的是root啄踊。
    Remote Directory: 遠(yuǎn)程目錄忧设。jenkins服務(wù)器發(fā)送文件給新增的server默認(rèn)是在這個(gè)目錄。

四颠通,IOS Jenkins打包

五址晕,Jenkins打包

參考:大神:王克鋒 https://kefeng.wang/2017/01/06/jenkins/

http://blog.csdn.net/u014641783/article/details/50866196

https://blog.x1be.win/index.php/2018/06/19/jenkins%E5%AE%89%E8%A3%85%E3%80%81%E9%85%8D%E7%BD%AE%E3%80%81%E6%9E%84%E5%BB%BA%E3%80%81%E8%84%9A%E6%9C%AC%E3%80%81%E9%85%8D%E7%BD%AE%E9%82%AE%E7%AE%B1%E3%80%81%E4%B8%8A%E4%BC%A0fir/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市顿锰,隨后出現(xiàn)的幾起案子谨垃,更是在濱河造成了極大的恐慌,老刑警劉巖撵儿,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件乘客,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡淀歇,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門(mén)匈织,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)浪默,“玉大人牡直,你說(shuō)我怎么就攤上這事∧删觯” “怎么了碰逸?”我有些...
    開(kāi)封第一講書(shū)人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)阔加。 經(jīng)常有香客問(wèn)我饵史,道長(zhǎng),這世上最難降的妖魔是什么胜榔? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任胳喷,我火速辦了婚禮,結(jié)果婚禮上夭织,老公的妹妹穿的比我還像新娘吭露。我一直安慰自己,他們只是感情好尊惰,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布讲竿。 她就那樣靜靜地躺著,像睡著了一般弄屡。 火紅的嫁衣襯著肌膚如雪题禀。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,007評(píng)論 1 284
  • 那天膀捷,我揣著相機(jī)與錄音迈嘹,去河邊找鬼。 笑死担孔,一個(gè)胖子當(dāng)著我的面吹牛江锨,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播糕篇,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼啄育,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了拌消?” 一聲冷哼從身側(cè)響起挑豌,我...
    開(kāi)封第一講書(shū)人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎墩崩,沒(méi)想到半個(gè)月后氓英,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鹦筹,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年铝阐,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铐拐。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡徘键,死狀恐怖练对,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吹害,我是刑警寧澤螟凭,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站它呀,受9級(jí)特大地震影響螺男,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜纵穿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一下隧、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧政恍,春花似錦汪拥、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至宗弯,卻和暖如春脯燃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蒙保。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工辕棚, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人邓厕。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓逝嚎,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親详恼。 傳聞我的和親對(duì)象是個(gè)殘疾皇子补君,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容