Tomcat + Jenkins iOS自動(dòng)打包(最新)

開(kāi)篇:前幾天個(gè)人業(yè)務(wù)空檔期,想著把自動(dòng)打包部署一下,不影響我們開(kāi)發(fā)時(shí)間。首選就想到了Jenkins,想必有很多朋友都自己部署過(guò)。
在初期我使用純Jenkins去部署,確實(shí)遇到了各種各樣的問(wèn)題。
之后多謝明中的幫助,所以之后選擇了Tomcat,最終也部署成功了。

自動(dòng)打包原理其實(shí)是在Jenkins的子目錄下,拷貝一份我們的項(xiàng)目過(guò)去,通過(guò)打包指令,對(duì)拷貝的項(xiàng)目進(jìn)行打包,如果需要上傳至蒲公英,只需要加上幾句指令就行。如果是需要上傳至公司內(nèi)網(wǎng)服務(wù)器或者共享地址,也只需要加上對(duì)應(yīng)的指令。

前提準(zhǔn)備:Java 環(huán)境
下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
注:如果已經(jīng)安裝過(guò)java,此步驟可略過(guò)

一、Tomcat

1.為何選擇Tomcat

在之前使用純Jenkins去部署,遇到了權(quán)限問(wèn)題和路徑問(wèn)題,差點(diǎn)沒(méi)把自己搞暈了。
使用Tomcat優(yōu)點(diǎn):
1.不用管權(quán)限問(wèn)題。
2.不用在Jenkins里設(shè)置上傳各種證書(shū):.keychain和.mobileprovision。
3.目錄結(jié)構(gòu)清晰,目錄結(jié)構(gòu)完全可配。

2.Tomcat安裝與設(shè)置

下載地址:http://tomcat.apache.org/
下載完成后 ,解壓,然后放到任意目錄,這里我放入了 /Users/YourName/Library
1.修改文件夾權(quán)限:

sudo chmod -R 777 /Library/Tomcat

2.啟動(dòng)Tomcat:

默認(rèn)端口是8080,如果被占用了,編輯Library/Tomcat/conf/server.xml文件,找到<Connector port="8080" ....../>等代碼,將8080改為自己想改的端口。我這里改成了8825。
設(shè)置端口

二、Jenkins

1.安裝

下載Jenkins.war:http://mirrors.jenkins.io/war-stable/latest/jenkins.war
下載完成后,將jenkins.war包保存到Tomcat\webapps下

2.配置Jenkins工作路徑:

在/Library/Tomcat/bin下打到catalina.sh文件,添加下面這行

export JENKINS_HOME="/Users/xxxx/Jenkins"

3.重啟Tomcat:

//關(guān)閉
/Library/Tomcat/bin/shutdown.sh
//啟動(dòng)
/Library/Tomcat/bin/startup.sh
開(kāi)啟成功

在瀏覽器中輸入:http://localhost:8825/jenkins,順利打開(kāi)Jenkins!

三、配置Jenkins腳本

jenkins的解鎖等前期步驟,直接跳過(guò),直接到最重要的部分,腳本配置。

1.配置參數(shù)

配置Scheme+config
其他

2.svn配置

svn

3.shell腳本

Date="$(date +"%m%d_%H%M")"
Day="$(date +"%m%d")"

workspace_path=$WORKSPACE
archive_path=$JENKINS_HOME/workspace/Packages/項(xiàng)目名

cd $workspace_path
pod install

cd 項(xiàng)目名.xcodeproj

# 我的項(xiàng)目中有配置bugly的腳本,打包時(shí)會(huì)上傳DSYM,影響打包速度。
# 打包給測(cè)試使用時(shí),用不到,所以使用perl正則找到配置bugly的腳本,替換為空字符串。
cat project.pbxproj | perl -pe "s/(?<=shellScript = \").*UPLOAD_DSYM_ONLY=1.*(?=(\"))//" > 999.pbxproj
mv -f 999.pbxproj project.pbxproj

xcodebuild archive \
-workspace "$workspace_path/項(xiàng)目名.xcworkspace" \
-scheme $Scheme \
-configuration $Configuration \
-archivePath $archive_path/項(xiàng)目名.xcarchive

xcodebuild \
-exportArchive \
-archivePath $archive_path/項(xiàng)目名.xcarchive \
-exportPath $archive_path \
-exportOptionsPlist $WORKSPACE/${ExportType}_ExportOptions.plist

#刪除舊xcarchive
rm -rf archive_path/項(xiàng)目名.xcarchive
#改名
IpaName="${Scheme}_${Configuration}_${Date}.ipa"
mv $archive_path/項(xiàng)目名.ipa $archive_path/$IpaName

if [ $UP_PGY == true ] 
then
IPA="$archive_path/$IpaName"
PGYUSERKEY="user_key"
PGYAPIKEY="api_key"
PGYDESC="Jenkins自動(dòng)打包"

#自動(dòng)上傳到蒲公英
curl -F "file=@$IPA" \
-F "uKey=$PGYUSERKEY" \
-F "_api_key=$PGYAPIKEY" \
-F "updateDescription=$PGYDESC" \
"https://qiniu-storage.pgyer.com/apiv1/app/upload"
fi

??!在打包過(guò)程中如果出現(xiàn)問(wèn)題,可能是路徑問(wèn)題。所以路徑要仔細(xì)檢查,要知道哪個(gè)路徑代表什么意思,存放著什么東西。

最終實(shí)現(xiàn):可以一鍵打包測(cè)試環(huán)境debug、預(yù)發(fā)布release-pre、線上release三個(gè)環(huán)境。


構(gòu)建時(shí)參數(shù)選擇
構(gòu)建成功

參考資料:
Jenkins環(huán)境搭建 iOS
如何為你的App配置多環(huán)境變量
手把手教你給一個(gè)iOS app配置多個(gè)環(huán)境變量

最后編輯于
?著作權(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)容