測(cè)試階段頻繁的打包,尤其是項(xiàng)目工程比較龐大的時(shí)候,電腦配置又比較一般,打一次包真的是可以玩手機(jī)了。為了不占用我們寶貴的時(shí)間,自動(dòng)化打包還是很必要的
成本最低的打包方式,就屬xcode自帶的xcodebuild命令了
打好包導(dǎo)出ipa其實(shí)也就2行腳本代碼 ----- 編譯打包、導(dǎo)出ipa
主要命令參數(shù)簡(jiǎn)介如下:
1、Archive
xcodebuild archive
-archivePath <archivePath>
-project <projectName>
-workspace <workspaceName>
-scheme <schemeName> #從-list命令中獲取
-configuration <Debug|Release>
2、Export
xcodebuild -exportArchive
-archivePath <xcarchivepath>
-exportPath <destinationpath>
-exportOptionsPlist <plistpath> #這個(gè)plist文件可以通過(guò)打一次ipa包里面去獲取
當(dāng)然,喜歡干凈的朋友可以在打包之前執(zhí)行一下cmd + K清理一下工程
對(duì)應(yīng)當(dāng)然也有腳本命令啦
3、Clean
xcodebuild clean
-workspace <workspaceName>
-scheme <schemeName> #從-list命令中獲取
-configuration <Debug|Release>
如果在執(zhí)行過(guò)程中又不喜歡日志輸出的,可以在命令行最后加上
-quiet #只有 warn 和 error 才會(huì)輸出
以上就是自動(dòng)化打包基本的幾種使用方法以及參數(shù)配置了,當(dāng)然xcodebuild的參數(shù)非常多,xcode能做的事情大部分都有對(duì)應(yīng)的命令行
下面列出部分可選命令的命令說(shuō)明,如果需要更復(fù)雜的使用方法,可以瀏覽官方文檔
看到這里,希望通過(guò)該命令集成屬于自己的shell腳本的可以參考這篇
iOS自動(dòng)化打包 ---- 集成shell腳本
可選命令命令說(shuō)明
| 命令名稱 | 命令描述 |
|---|---|
| -usage | 查看xcodebuild簡(jiǎn)潔的用法 |
| -help | 查看幫助 |
| -verbose | 提供額外的狀態(tài)輸出 |
| -license | 顯示Xcode和SDK許可協(xié)議 |
| -checkFirstLaunchStatus | 檢查是否有任何初啟動(dòng)任務(wù)需要執(zhí)行 |
| -project NAME | 編譯項(xiàng)目名稱,例如:xcodebuild -project XXX.xcodeproj |
| -target NAME | 編譯目標(biāo)名稱 |
| -workspace | NAME編譯工作空間名稱 |
| -scheme NAME | 編譯計(jì)劃名稱 |
| -configuration NAME | 為構(gòu)建每一個(gè)目標(biāo)使用build配置名稱 |
| -xcconfig PATH | 在PATH作為替代應(yīng)用文件中定義的構(gòu)建設(shè)置 |
| -arch ARCH | 建立每個(gè)目標(biāo)的架構(gòu)ARCH;這將覆蓋在項(xiàng)目中定義的架構(gòu) |
| -sdk SDK | 使用指定的SDK編譯項(xiàng)目 |
| -toolchain NAME | 使用工具鏈與標(biāo)識(shí)或名稱 |
| -destination DESTINATIONSPECIFIER | 使用由目標(biāo)說(shuō)明(用逗號(hào)分隔的一系列的key =描述目的地使用值對(duì))中描述的目的地 |
| -destination-timeout TIMEOUT | 等待TIMEOUT秒,而搜索的目標(biāo)設(shè)備 |
| -parallelizeTargets | 建立并行獨(dú)立目標(biāo) |
| -jobs NUMBER | 指定并發(fā)生成操作的最大數(shù)量 |
| -dry-run | 做一切,除了實(shí)際運(yùn)行的命令 |
| -hideShellScriptEnvironment | 不顯示在構(gòu)建日志shell腳本中的環(huán)境變量 |
| -showsdks | 顯示已安裝的SDK的列表 |
| -showBuildSettings | 顯示構(gòu)建設(shè)置和值的列表 |
| -list | 列出了在一個(gè)工作空間中的一個(gè)項(xiàng)目的目標(biāo)和配置,或方案 |
| -find-executable NAME | 在所提供的SDK和工具鏈顯示的完整路徑可執(zhí)行文件名稱 |
| -find-library NAME | 在所提供的SDK和工具鏈顯示的完整路徑庫(kù)名 |
| -version | 顯示的Xcode的版本;與-sdk將顯示一個(gè)或所有已安裝的SDK信息 |
| -enableAddressSanitizer YES/NO | 測(cè)試時(shí)打開(kāi)或關(guān)閉地址過(guò)濾 |
| -resultBundlePath PATH | 指定在描述什么發(fā)生了捆綁的結(jié)果將被放置的目錄 |
| -derivedDataPath PATH | 指定的目錄中生成產(chǎn)品和其他衍生數(shù)據(jù)會(huì) |
| -archivePath PATH | 被指定任何創(chuàng)建的檔案將被放置的目錄,或應(yīng)導(dǎo)出存檔 |
| -exportArchive | 指定歸檔應(yīng)導(dǎo)出 |
| -exportOptionsPlist PATH | 指定用于配置歸檔導(dǎo)出plist文件的路徑 |
| -enableCodeCoverage YES/NO | 打開(kāi)代碼覆蓋率或關(guān)閉時(shí)的測(cè)試 |
| -exportPath PATH | 指定從存檔導(dǎo)出的產(chǎn)品的目標(biāo) |
| -skipUnavailableActions | 指定不能執(zhí)行計(jì)劃的行動(dòng)應(yīng)被跳過(guò)而不是導(dǎo)致失敗 |
| -exportLocalizations | 出口完成優(yōu)秀項(xiàng)目本地化 |
| -importLocalizations | 進(jìn)口本地化項(xiàng)目,假設(shè)任何必要的本地化資源在Xcode中已創(chuàng)建 |
| -localizationPath | 指定XLIFF本地化文件路徑 |
| -exportLanguage | 規(guī)定包括在本地化出口多個(gè)可選ISO 639-1語(yǔ)言 |
參考文章:xcodebuild命令介紹