Shell腳本自動(dòng)會(huì)打包iPa并提交iPa(xcodebuild -exportArchive)

具體內(nèi)容如下

build.sh:

#! bin/bash

###############使用方法
#1、build.sh和build.plist放入項(xiàng)目工程目錄
#2洞渤、命令行進(jìn)入目錄直接執(zhí)行:sh build.sh

export LC_ALL=zh_CN.GB2312;
export LANG=zh_CN.GB2312

###############設(shè)置
gitPath="https://xxx/xxx.git"
buildConfig="DevQA" #編譯的方式, 如Release,Debug等
isWorkSpace=true  #判斷是用的workspace還是直接project,workspace設(shè)置為true坠陈,否則設(shè)置為false
projectName=`find . -name *.xcodeproj | awk -F "[/.]" '{print $(NF-1)}'` #項(xiàng)目名稱

###############編譯目錄
buildRootDir=~/Desktop/$projectName-IPA #ipa蜕企,icon最后所在的目錄絕對(duì)路徑
if [ -d "$buildRootDir" ]; then
echo $buildRootDir
else
echo "文件目錄不存在"
mkdir -pv $buildRootDir
echo "創(chuàng)建${buildRootDir}目錄成功"
fi

###############拉取代碼暗挑,
cd $buildRootDir
rm -rf ./build
mkdir build
buildProgressDir=$buildRootDir/build #打包過(guò)程目錄
cd $buildProgressDir
git clone ${gitPath}

projectDir=$buildProgressDir/$projectName #項(xiàng)目所在目錄的絕對(duì)路徑
echo $projectDir
exportPlist=$projectDir/build.plist  #build.plist路徑
archivePath=$buildProgressDir/${projectName}.xcarchive #xcarchive路徑

###############獲取版本號(hào),bundleID
infoPlist="$projectDir/$projectName/SupportingFiles/Info.plist"
bundleVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $infoPlist`
bundleIdentifier=`/usr/libexec/PlistBuddy -c "Print CFBundleIdentifier" $infoPlist`
bundleBuildVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" $infoPlist`

###############開(kāi)始編譯app
cd $projectDir
if $isWorkSpace ; then  #判斷編譯方式
    echo "*****開(kāi)始編譯 workspace*****"
    xcodebuild -target ${projectName} -configuration ${buildConfig} -sdk iphoneos clean  SYMROOT=$buildProgressDir
    xcodebuild archive  -workspace $projectName.xcworkspace -scheme $projectName -archivePath ${archivePath}
else
    echo "*****開(kāi)始編譯 project*****"
    xcodebuild  -target  $projectName  -configuration $buildConfig clean build SYMROOT=$buildProgressDir
    xcodebuild archive  -project $projectName.xcodeproj -scheme $projectName -archivePath ${archivePath}
fi
#判斷編譯結(jié)果
if test $? -eq 0
then
echo "*****編譯成功*****"
else
echo "*****編譯失敗*****"
exit 1
fi

###############開(kāi)始打包成.ipa
appDir=$buildProgressDir/$findFolderName  #app所在路徑
echo "開(kāi)始打包${archivePath}至$buildProgressDir....."
xcodebuild -exportArchive -archivePath $archivePath -exportPath $buildProgressDir -exportOptionsPlist $exportPlist


###############檢查文件是否存在確認(rèn)打包成功
exportIpaPath=$buildProgressDir/$projectName.ipa
if [ -f "$exportIpaPath" ]
then
echo "$exportIpaPath 生成成功."
else
echo "打包失敗."
exit 1
fi

###############復(fù)制文件到主目錄
finalIPAPath=${buildRootDir}/${projectName}-$(date +%Y%m%d_%H%M).ipa
cp -f -p $exportIpaPath  $finalIPAPath   #拷貝ipa文件
echo "復(fù)制$ipaName.ipa到${finalIPAPath}成功"
echo "*****結(jié)束編譯困乒,處理成功*****"
#open $buildRootDir

###############上傳到蒲公英蝗肪,{uKey}袜爪,{_api_key}需替換
export LANG=en_US
export LC_ALL=en_US;
echo "正在上傳到蒲公英...."
curl -F "file=@$finalIPAPath" -F "uKey={uKey}" -F "_api_key={_api_key}" http://www.pgyer.com/apiv1/app/upload
#判斷上傳結(jié)果
if test $? -eq 0
then
echo "*****\^o^/*****上傳到蒲公英成功*****\^o^/*****"
else
echo "*****\(╯-╰)/*****上傳到蒲公英失敗*****\(╯-╰)/*****"
exit 1
fi

###############刪除構(gòu)建目錄
rm -rf $buildProgressDir

build.plist:
teamID:可登錄https://developer.apple.com/account 登錄相應(yīng)賬號(hào)查看Membership獲取
method:app-store、enterprise薛闪、ad-hoc辛馆、development

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>enterprise</string>
    <key>teamID</key>
    <string>xxx</string>
    <key>compileBitcode</key>
    <false/>
</dict>
</plist>

相對(duì)build_deployto_fir.sh主要做了以下變動(dòng):
1)xrun替換為xcodebuild -exportArchive
2)從遠(yuǎn)程clone代碼,防止本地代碼不是最新代碼
3)優(yōu)化一些其他邏輯

參考鏈接:
1)http://www.reibang.com/p/bccbb37f21f9
2)https://github.com/heyuan110/BashShell

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末豁延,一起剝皮案震驚了整個(gè)濱河市怀各,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌术浪,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,248評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寿酌,死亡現(xiàn)場(chǎng)離奇詭異胰苏,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)醇疼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,681評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門硕并,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)法焰,“玉大人,你說(shuō)我怎么就攤上這事倔毙“R牵” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 153,443評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵陕赃,是天一觀的道長(zhǎng)卵蛉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)么库,這世上最難降的妖魔是什么傻丝? 我笑而不...
    開(kāi)封第一講書人閱讀 55,475評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮诉儒,結(jié)果婚禮上葡缰,老公的妹妹穿的比我還像新娘。我一直安慰自己忱反,他們只是感情好泛释,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,458評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著温算,像睡著了一般怜校。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上米者,一...
    開(kāi)封第一講書人閱讀 49,185評(píng)論 1 284
  • 那天韭畸,我揣著相機(jī)與錄音,去河邊找鬼蔓搞。 笑死胰丁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的喂分。 我是一名探鬼主播锦庸,決...
    沈念sama閱讀 38,451評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蒲祈!你這毒婦竟也來(lái)了甘萧?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 37,112評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤梆掸,失蹤者是張志新(化名)和其女友劉穎扬卷,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體酸钦,經(jīng)...
    沈念sama閱讀 43,609評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡怪得,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,083評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片徒恋。...
    茶點(diǎn)故事閱讀 38,163評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蚕断,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出入挣,到底是詐尸還是另有隱情亿乳,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評(píng)論 4 323
  • 正文 年R本政府宣布径筏,位于F島的核電站葛假,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏匠璧。R本人自食惡果不足惜桐款,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,357評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望夷恍。 院中可真熱鬧魔眨,春花似錦、人聲如沸酿雪。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,357評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)指黎。三九已至朋凉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間醋安,已是汗流浹背杂彭。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,590評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吓揪,地道東北人亲怠。 一個(gè)月前我還...
    沈念sama閱讀 45,636評(píng)論 2 355
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像柠辞,于是被迫代替她去往敵國(guó)和親团秽。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,925評(píng)論 2 344

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