1. 程式人生 > >jenkins中整合OTA釋出

jenkins中整合OTA釋出

目的:jenkins構建成功後,自動生成OTA釋出所需要的檔案,並指向最新的安裝包

1. 在web伺服器上部署好目錄結構


其中:

install.html 是一個非常簡單的釋出頁面,這個頁面的地址固定不變,其他人就總是通過訪問 http://xxx.xxx.xxx/ota/install.html 來實現所有操作。

<div style="text-align:center;margin-top:50px"><a href="http://xxx.xxx.xxx/ota/ca.crt" style="font-size:70px;">Install Root Certificate</a></div>
<div style="text-align:center;margin-top:100px"><a href="itms-services://?action=download-manifest&url=https://xxx.xxx.xxx/ota/iPhone/iPhoneOTA.plist" style="font-size:70px;">Install iPhone App</a></div>
<div style="text-align:center;margin-top:100px"><a href="itms-services://?action=download-manifest&url=https://xxx.xxx.xxx/ota/iPad/iPadOTA.plist" style="font-size:70px;">Install iPad App</a></div>
iPad和iPhone目錄中是各自對應的最新ipa檔案。

otabuddy.sh用來根據ipa自動生成plist檔案, 指令碼地址點選這裡
ca.crt是給https連線對應的伺服器證書籤名的根證書。 具體 參考這裡

2. 在jenkins中用簡單的指令碼實現這個過程

#將二維碼放到對應job的根目錄下,便於作為郵件附件傳送。install.png就是install.html的url對應的二維碼
cp /Users/marty/.jenkins/workspace/install.png /Users/marty/.jenkins/workspace/xxxx/
#刪除已有的ipa和plist
cd /Library/WebServer/Documents/ota/iPad/
rm -rf *.ipa
rm -rf *.plist
#把最新的ipa從jenkins工作目錄複製到web伺服器工作目錄
cp /Users/marty/.jenkins/workspace/xxxx/bin/*.ipa /Library/WebServer/Documents/ota/iPad/
#生成Plist檔案,plist檔案採用固定名稱。
ipaName=`ls |grep ipa`
./otabuddy.sh plist $ipaName http://xxx.xxx.xxx/ota/iPad/$ipaName iPadOTA.plist
3. 在構建成功的郵件中增加一個附件,附件就是二維碼

整過程就是,構建成功後傳送郵件給相關人員,郵件中附帶二維碼,其他人員掃描二維碼訪問install.html頁面,點選即可自動安裝最新的app