【iOS】自動化打包

平臺:Mac 終端工具
終端命令行工具可以幫助我們實現(xiàn)自動化打包。


命令工具
xcode-select [options]
  • 輸出有效地開發(fā)者目錄绰咽,這個目錄是/Applications/Xcode.app/Contents/Developer八堡,存在xcode安裝目錄下旷档,它決定了xcode終端命令行指令應(yīng)該調(diào)用哪個工具(如:xcodebuild指令,調(diào)用的是/Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild),以及系統(tǒng)命令需要調(diào)用的一些工具奴饮。
    # xcode-select -p
  • 如果安裝了多個版本的xcode工具襟交,可以使用xcode-select命令指定命令行指令使用哪個版本xcode下的developer目錄?下的調(diào)試工具迈倍。
    # xcode-select --switch /Applications/Xcode2.app/Contents/Developer

例:
# xcode-select -p
輸出終端命令行工具當(dāng)前默認Xcode.app的developer路徑

# xcode-select --switch /Applications/Xcode.app/Contents/Developer
選擇Xcode.app安裝目錄下的developer目錄作為終端命令行默認調(diào)用路徑

# xcode-select --switch /Applications/Xcode.app
功能同上,xcode-select命令會自動補齊developer目錄

# /usr/bin/xcodebuild# xcodebuild
不進入到Xcode.app的developer目錄,即目錄外運行xcodebuild命令

# /usr/bin/xcrun --find xcodebuild# xcrun -f xcodebuild
定位xcodebuild工具在developer目錄中的路徑

# env DEVELOPER_DIR="/Applications/Xcode-2.app" /usr/bin/xcodebuild
功能等同于使用xcode-select轉(zhuǎn)換捣域,這里使用改變環(huán)境變量的方法轉(zhuǎn)換developer目錄啼染,將/usr/bin/xcodebuild指向/Applications/Xcode-2.app,然后命令會自動補齊developer目錄焕梅。使用** echo $PATH**查看環(huán)境變量如下:

打印環(huán)境變量.png

可以看到迹鹅,/usr/bin目錄已經(jīng)默認添加到了系統(tǒng)環(huán)境變量中,所以使用xcodebuild指令等同于使用/usr/bin/xcodebuild指令丘侠。
注:一般轉(zhuǎn)換了默認developer目錄后徒欣,會自動關(guān)聯(lián)到環(huán)境變量中。

更多信息請查看** man xcode-select **

xcrun [options] <tool name> ... arguments ...

注:中括號表示可選蜗字,尖括號表示必選
xcrun工具可以讓我們在終端命令行中調(diào)用開發(fā)者工具

  • 從默認的開發(fā)者目錄中查找或執(zhí)行 <tool name>中指定的工具打肝,具體是操作屬性有[options]指定。如:-f 查找并輸出路徑 -r 查找并執(zhí)行

例:
# xcrun --find clang
查找并輸出當(dāng)前默認SDK的二進制編譯器路徑挪捕。

# xcodebuild -showsdks
列出Xcode知道的所有有效地SDK

# xcrun --sdk iphoneos --find texturetool
指定查找并輸出iOS SDK下的texturetool(紋理處理插件)的路徑粗梭。

# xcrun --sdk macosx --show-sdk-path
指定打印當(dāng)前Mac系統(tǒng)對應(yīng)SDK的安裝位置

# xcrun git status
查找git命令并執(zhí)行查看它的狀態(tài)

xcodebuild
  • 編譯xcode項目或編譯使用cocoapods管理的項目。

?示例:
# cd iosProjectFile/
進入到你的iOS項目目錄(包含name.xcodeproj的目錄)

進入項目.png

# xcodebuild clean install
清空上一次的編譯目錄级零,當(dāng)編譯命令運行后默認使用工程的第一個taget目標(biāo)文件打包安裝断医。

# xcodebuildxcodebuild -project name.xcodeproj
編譯當(dāng)前項目目錄下的name.xcodeproj工程包滞乙,當(dāng)目錄下有多個.xcodeproj文件時,需要用-project選項指定選擇哪個.xcodeproj文件進行編譯鉴嗤。

默認情況下斩启,xcodebuild編譯的時候使用的是第一個目標(biāo)文件target和默認的配置configuration

# xcodebuild -list
列出編譯設(shè)置列表,查看target醉锅、configuration兔簇、scheme,經(jīng)常和-project -worksapce -scheme配合起來使用

設(shè)置列表.png

# xcodebuild -workspace app.xcworkspace -scheme app
cocoapods管理的項目編譯打包方式,-workspace -scheme必須同時設(shè)置正確

編譯成功會有如下提示


?app.xcworkspace打包.png

# xcodebuild -workspace app.xcworkspace -scheme app archive -archivePath dir/archivePath/MyAPP.xcarchive
歸檔打包命令硬耍,成功會生成一個.xcarchive的文件

?歸檔成功提示.png

?歸檔文件.png

# xcrun -sdk iphoneos PackageApplication dir/ArchivePath/MyApp_debug.xcarchive/Products/Applications/app.app -o dir/Ipa/myapp_debug.ipa
使用xcrun命令打包ipa文件, .app文件通過顯示.xcarchive文件報內(nèi)容獲得

輸出ipa包.png

注意事項:

  • 實際打包過程中垄琐,使用xcodebuild歸檔.xcarchive和xcrun打包.ipa文件即可,注意每次打新包前先clean,歸檔路徑和輸出路徑要正確
  • 如果需要指定發(fā)布版本经柴,請使用-configuration選項指定狸窘,更改sdk請使用help或man查看幫助信息。

參考文件:
xcArchive To Ipa
man命令手冊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末坯认,一起剝皮案震驚了整個濱河市翻擒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌鹃操,老刑警劉巖韭寸,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異荆隘,居然都是意外死亡恩伺,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門椰拒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晶渠,“玉大人,你說我怎么就攤上這事燃观“” “怎么了?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵缆毁,是天一觀的道長番川。 經(jīng)常有香客問我,道長脊框,這世上最難降的妖魔是什么颁督? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮浇雹,結(jié)果婚禮上沉御,老公的妹妹穿的比我還像新娘。我一直安慰自己昭灵,他們只是感情好吠裆,可當(dāng)我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布伐谈。 她就那樣靜靜地躺著,像睡著了一般试疙。 火紅的嫁衣襯著肌膚如雪诵棵。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天效斑,我揣著相機與錄音非春,去河邊找鬼。 笑死缓屠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的护侮。 我是一名探鬼主播敌完,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼羊初!你這毒婦竟也來了滨溉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤长赞,失蹤者是張志新(化名)和其女友劉穎晦攒,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體得哆,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡脯颜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了贩据。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栋操。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖饱亮,靈堂內(nèi)的尸體忽然破棺而出矾芙,到底是詐尸還是另有隱情,我是刑警寧澤近上,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布剔宪,位于F島的核電站,受9級特大地震影響壹无,放射性物質(zhì)發(fā)生泄漏葱绒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一格遭、第九天 我趴在偏房一處隱蔽的房頂上張望哈街。 院中可真熱鬧,春花似錦拒迅、人聲如沸骚秦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽作箍。三九已至硬梁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胞得,已是汗流浹背荧止。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留阶剑,地道東北人跃巡。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像牧愁,于是被迫代替她去往敵國和親素邪。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,982評論 2 361

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