yum install screen
環(huán)境配置:
10.12.6 (16G29) + Version 9.1 (9B55) + git + jenkins
在嘗試了99次之后逛绵,我們終于成功了
完成效果:可選Debug、Stg、Release環(huán)境
自動上傳ios ipa server效果
網(wǎng)上找了很多文章走了很多坑,最后發(fā)現(xiàn),還是用腳本打包最方便愿伴,網(wǎng)上的資料幾乎都是上傳什么login.keychain之類。
廢話不多說电湘,直接上配置吧隔节。
一、有個環(huán)境模式的選擇參數(shù)可以設(shè)置
二寂呛、源碼下載怎诫,用密碼或者ssh key都可以,然后這里加載我們選擇的tag或者branch
三贷痪、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
這種場景 下我們得把plist文件重新放一下
郵件發(fā)送需求熟吏,我們得裝個插件
然后配置下默認(rèn)的地址和郵箱地址
<!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項目里配置
然后這里可以根據(jù)實際情況選擇
實際需求距糖,可能我們還需要一次同時打出三種環(huán)境的包,還有可能要求三種環(huán)境的包都能裝在一個手機(jī)上牵寺,每個環(huán)境的app icon不一樣悍引,用于區(qū)別,每晚凌晨兩三點左右自動打包帽氓,jenkins結(jié)合Sonar代碼檢查(這個正在實踐中)