Jenkins iOS ipa 自動打包實踐

yum install screen

環(huán)境配置:
10.12.6 (16G29) + Version 9.1 (9B55) + git + jenkins
在嘗試了99次之后逛绵,我們終于成功了


image.png

完成效果:可選Debug、Stg、Release環(huán)境


image.png

自動上傳ios ipa server效果


image.png

網(wǎng)上找了很多文章走了很多坑,最后發(fā)現(xiàn),還是用腳本打包最方便愿伴,網(wǎng)上的資料幾乎都是上傳什么login.keychain之類。
廢話不多說电湘,直接上配置吧隔节。
一、有個環(huán)境模式的選擇參數(shù)可以設(shè)置

image.png

二寂呛、源碼下載怎诫,用密碼或者ssh key都可以,然后這里加載我們選擇的tag或者branch

image.png

三贷痪、shell打包幻妓,這里我沒有執(zhí)行pod install,因為項目里的百度地圖更新起來太慢劫拢,所以為了方便就直接把pods文件夾也放到git管理中去了肉津。
然后打包完成后用了scp命令上傳到有ios ipa server的服務(wù)器上,關(guān)于時間戳可安裝一個插件Build Timestamp


#!/bin/bash
# origin/v1.2 -> branch-v1.2
branchOrTag=${branchOrTag/origin\//branch-}
# V4.5.3線上版本 -> V4.5.3online
branchOrTag=${branchOrTag/線上版本/online}
# V4.5.3上線版本 -> V4.5.3online
branchOrTag=${branchOrTag/上線版本/online}
# V4.5.3上線 -> V4.5.3online
branchOrTag=${branchOrTag/上線/online}
# V4.5.3上下版本 -> V4.5.3online
branchOrTag=${branchOrTag/上下版本/online}

jenkinsDownloadedPath=${JENKINS_HOME}/workspace/${JOB_NAME}/
workspaceName="YourProjName"
schemeName="YourProjName"
workspacePath=$jenkinsDownloadedPath$workspaceName".xcworkspace"
archivePath=$jenkinsDownloadedPath"/build/YourProjFolderName"${env}${BUILD_TIMESTAMP}".xcarchive"
exportPath=$jenkinsDownloadedPath"/ipa/"$env
exportOptionsPlistPath=$jenkinsDownloadedPath"exportOptions.plist"
xcodebuildDefaultIpaPath=$jenkinsDownloadedPath"ipa/"$env"/YourProjName.ipa"
uploadToServerIpaPath=$jenkinsDownloadedPath"ipa/"$env"/YourProjFolderName"-${branchOrTag}-${env}-${BUILD_TIMESTAMP}".ipa"
serverIpaFolderPath="devops@你們公司服務(wù)器ip地址:/home/devops/yourIOSIpa"
xcodebuild archive -workspace  ${workspacePath} -scheme  ${schemeName} -configuration $env -archivePath  ${archivePath}
xcodebuild -exportArchive -archivePath ${archivePath} -configuration $env -exportPath ${exportPath} -exportOptionsPlist ${exportOptionsPlistPath}
cp ${xcodebuildDefaultIpaPath} ${uploadToServerIpaPath}
scp ${uploadToServerIpaPath} ${serverIpaFolderPath}


關(guān)于這個exportOptionsPlist.plist其實就是之前文章里的那個文件舱沧,為了方便這個我已經(jīng)放git管理了妹沙,上面的一些目錄根據(jù)實際項目文件夾來變更處理吧。

處理tag與branch


image.png

這種場景 下我們得把plist文件重新放一下

郵件發(fā)送需求熟吏,我們得裝個插件


image.png

然后配置下默認(rèn)的地址和郵箱地址


image.png
image.png
image.png

<!DOCTYPE html>  
<html>  
<head>  
<meta charset="UTF-8">  
<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次構(gòu)建日志</title>  
</head>  
  
<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"  
    offset="0">  
    <table width="95%" cellpadding="0" cellspacing="0"  
        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">  
        <tr>  
            <td><br />  
            <b><font color="#0B610B">構(gòu)建信息</font></b>  
            <hr size="2" width="100%" align="center" /></td>  
        </tr>  
        <tr>  
            <td>  
                <ul>  
                    <li>ipa下載地址 : <a >https://172.16.101.195:12345/download</a></li>  
                    <li>項目名稱 : ${PROJECT_NAME}</li>  
                    <li>構(gòu)建編號 : 第${BUILD_NUMBER}次構(gòu)建</li>    
                    <li>觸發(fā)原因: ${CAUSE}</li>  
                    <li>構(gòu)建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>  
                    <li>構(gòu)建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>  
                    <li>工作目錄 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>  
                    <li>項目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>  
                </ul>  
            </td>  
        </tr>  
        <tr>  
            <td><b><font color="#0B610B">變更集</font></b>  
            <hr size="2" width="100%" align="center" /></td>  
        </tr>  
          
        <tr>  
            <td>${JELLY_SCRIPT,template="html"}<br/>  
            <hr size="2" width="100%" align="center" /></td>  
        </tr>  
         
         
    </table>  
</body>  
</html> 

最后我們在Jenkins項目里配置

image.png

然后這里可以根據(jù)實際情況選擇


image.png

實際需求距糖,可能我們還需要一次同時打出三種環(huán)境的包,還有可能要求三種環(huán)境的包都能裝在一個手機(jī)上牵寺,每個環(huán)境的app icon不一樣悍引,用于區(qū)別,每晚凌晨兩三點左右自動打包帽氓,jenkins結(jié)合Sonar代碼檢查(這個正在實踐中)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吗铐,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子杏节,更是在濱河造成了極大的恐慌唬渗,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奋渔,死亡現(xiàn)場離奇詭異镊逝,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)嫉鲸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門撑蒜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人玄渗,你說我怎么就攤上這事座菠。” “怎么了藤树?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵浴滴,是天一觀的道長。 經(jīng)常有香客問我岁钓,道長升略,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任屡限,我火速辦了婚禮品嚣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘钧大。我一直安慰自己翰撑,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布啊央。 她就那樣靜靜地躺著眶诈,像睡著了一般。 火紅的嫁衣襯著肌膚如雪劣挫。 梳的紋絲不亂的頭發(fā)上册养,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天,我揣著相機(jī)與錄音压固,去河邊找鬼球拦。 笑死,一個胖子當(dāng)著我的面吹牛帐我,可吹牛的內(nèi)容都是我干的坎炼。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼拦键,長吁一口氣:“原來是場噩夢啊……” “哼谣光!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起芬为,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤萄金,失蹤者是張志新(化名)和其女友劉穎蟀悦,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氧敢,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡日戈,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了孙乖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浙炼。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖唯袄,靈堂內(nèi)的尸體忽然破棺而出弯屈,到底是詐尸還是另有隱情,我是刑警寧澤恋拷,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布资厉,位于F島的核電站,受9級特大地震影響梅掠,放射性物質(zhì)發(fā)生泄漏酌住。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一阎抒、第九天 我趴在偏房一處隱蔽的房頂上張望酪我。 院中可真熱鬧,春花似錦且叁、人聲如沸都哭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽欺矫。三九已至,卻和暖如春展氓,著一層夾襖步出監(jiān)牢的瞬間穆趴,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工遇汞, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留未妹,地道東北人。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓空入,卻偏偏與公主長得像络它,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子歪赢,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,851評論 2 361

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