iOS自動(dòng)打包并發(fā)布測(cè)試版本

本文主要涉及一下幾個(gè)方面的內(nèi)容:

1妓忍、xcodebuild的介紹

2磷账、使用xcodebuild打包生成Ad-hoc的ipa文件

3缝裁、將打包好的文件上傳到測(cè)試平臺(tái)

3荣瑟、將過(guò)程腳本化

xcodebuild簡(jiǎn)介

xcodebuild 是蘋果自己發(fā)布的自動(dòng)構(gòu)建的工具治拿,Xcode的Command Line Tools自帶該工具,一般不需要我們手動(dòng)安裝笆焰。在Xcode8以前還可以使用xctool來(lái)實(shí)現(xiàn)忍啤,但是xctool在Xcode8以后不再支持build功能,F(xiàn)acebook團(tuán)隊(duì)推薦轉(zhuǎn)回官方的xcodebuild仙辟,坑爹的我還花了一段時(shí)間研究。

我們需要在目標(biāo)工程目錄下執(zhí)行 xcodebuild 命令鳄梅,xcodebuild -help可查看相關(guān)的說(shuō)明叠国,里面的說(shuō)明十分詳細(xì)。

xcodebuild打包生成

打包ipa我們主要用到以下幾條命令:

  1. xcodebuild clean -project $projectname -scheme $schemeName
    清理工程,避免出現(xiàn)一些奇怪的錯(cuò)誤
  2. xcodebuild archive -project $projectname -scheme $schemeName -configuration $configuration -archivePath
    生成Archive文件
  3. xcodebuild -exportArchive -archivePath $archivePath -exportPath $exportPath -exportOptionsPlist $exportOptionsPlist
    從Archive文件導(dǎo)出ipa

-project:項(xiàng)目名稱戴尸,如果工程目錄里面里面有多個(gè)工程粟焊,必須指定,如果項(xiàng)目使用了cocoapods孙蒙,此處應(yīng)該使用-workspace,即

xcodebuild archive -workspace $projectname -scheme $schemeName -configuration $configuration -archivePath

-archivePath:Archive文件導(dǎo)出目的路徑

-exportPath:ipa文件導(dǎo)出路徑’

-scheme:指定scheme

-configuration:指定版本release或者debug

以上兩個(gè)可以通過(guò)-xcodebuild -list查看可用值

-exportOptionsPlist:打包的相關(guān)配置參數(shù)项棠,該參數(shù)是一個(gè).plist文件路徑,里面包含一些我們打包需要用到的配置,例如:

<?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>compileBitcode</key> 
        <false/>
</dict>
</plist>

對(duì)于大部分情況我們只需要指定這兩個(gè)參數(shù)挎峦,更多詳細(xì)的可參照xcodebuild -help里面的說(shuō)明香追。
此外,-list, -showBuildSettings, -showsdks 的參數(shù)可以查看項(xiàng)目或者工程的信息坦胶。

上傳到測(cè)試平臺(tái)

本人使用的是fir透典,下載安裝命令行客戶端

fir publish filePath(ipa文件路勁)

如果使用的是其他的發(fā)布平臺(tái)晴楔,將上傳腳本替換成對(duì)應(yīng)平臺(tái)的即可

過(guò)程腳本化

#!/bin/sh
#項(xiàng)目路徑
projectfile=/Users/my/Desktop/PackDemo

#工程文件路徑
project=PackDemo.xcworkspace

#scheme名稱
scheme=PackDemo

#target名稱
target=PackDemo

#編譯版本
configuration=Release

#archive文件路徑
archivePath=~/desktop/打包/$target/$target.xcarchive

#ipa包導(dǎo)出路徑
exportPath=~/desktop/打包/$target

#打包配置文件路徑
exportOptionsPlist=$projectfile/exportOptionsPlist.plist

#上傳時(shí),ipa包路勁
publishPath=$exportPath/$target.ipa

#進(jìn)入項(xiàng)目所在文件
cd $projectfile

# 清理工程
xcodebuild clean -workspace $project -scheme $scheme -configuration $configuration

#上傳fir
function upload
{
    fir publish $publishPath
    rm -r $archivePath
}

#導(dǎo)出ipa文件,會(huì)在$exportPath路徑生成ipa文件
function export
{
xcodebuild -exportArchive -archivePath $archivePath -exportPath $exportPath -exportOptionsPlist $exportOptionsPlist
if [ $? -eq 1 ]
then
echo "ipa導(dǎo)出失敗"
read
else
clear
echo "ipa導(dǎo)出成功"
# upload
fi
}

#archive項(xiàng)目峭咒,會(huì)在$archivePath路徑生成PackDemo.xcarchive文件
function archive
{
xcodebuild archive -workspace $project -scheme $scheme -configuration $configuration -archivePath $archivePath
if [ $? -eq 1 ]
then
echo "編譯失敗"
read
else
clear
echo "編譯成功"
export
fi
}

#開始執(zhí)行
archive

到此完成了自動(dòng)化打包腳本税弃,本人習(xí)慣為每個(gè)項(xiàng)目都生成一個(gè)對(duì)應(yīng)的腳本,里面寫好打包的工程配置,內(nèi)容都基本相同凑队,只需要修改對(duì)應(yīng)的路徑參數(shù)即可则果,每次需要打新的測(cè)試包,只需打開對(duì)應(yīng)的腳本文件即可漩氨。
另外西壮,Application Loader命令行可以讓我們通過(guò)腳本上傳App Store,詳細(xì)的教程請(qǐng)參考蘋果文檔https://itunesconnect.apple.com/docs/UsingApplicationLoader.pdf

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末才菠,一起剝皮案震驚了整個(gè)濱河市茸时,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赋访,老刑警劉巖可都,帶你破解...
    沈念sama閱讀 221,635評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異蚓耽,居然都是意外死亡渠牲,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門步悠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)签杈,“玉大人,你說(shuō)我怎么就攤上這事鼎兽〈鹄眩” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵谚咬,是天一觀的道長(zhǎng)鹦付。 經(jīng)常有香客問(wèn)我,道長(zhǎng)择卦,這世上最難降的妖魔是什么敲长? 我笑而不...
    開封第一講書人閱讀 59,640評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮秉继,結(jié)果婚禮上祈噪,老公的妹妹穿的比我還像新娘。我一直安慰自己尚辑,他們只是感情好辑鲤,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著腌巾,像睡著了一般遂填。 火紅的嫁衣襯著肌膚如雪铲觉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評(píng)論 1 308
  • 那天吓坚,我揣著相機(jī)與錄音撵幽,去河邊找鬼。 笑死礁击,一個(gè)胖子當(dāng)著我的面吹牛盐杂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播哆窿,決...
    沈念sama閱讀 40,833評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼链烈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了挚躯?” 一聲冷哼從身側(cè)響起强衡,我...
    開封第一講書人閱讀 39,736評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎码荔,沒(méi)想到半個(gè)月后漩勤,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缩搅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評(píng)論 3 340
  • 正文 我和宋清朗相戀三年越败,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硼瓣。...
    茶點(diǎn)故事閱讀 40,503評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡究飞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出堂鲤,到底是詐尸還是另有隱情亿傅,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布瘟栖,位于F島的核電站袱蜡,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏慢宗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評(píng)論 3 333
  • 文/蒙蒙 一奔穿、第九天 我趴在偏房一處隱蔽的房頂上張望镜沽。 院中可真熱鬧,春花似錦贱田、人聲如沸缅茉。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)蔬墩。三九已至译打,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拇颅,已是汗流浹背奏司。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留樟插,地道東北人韵洋。 一個(gè)月前我還...
    沈念sama閱讀 48,909評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像黄锤,于是被迫代替她去往敵國(guó)和親搪缨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蒂阱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評(píng)論 2 359

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