【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
輸出終端命令行工具當前默認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
查找并輸出當前默認SDK的二進制編譯器路徑。

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

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

# xcrun --sdk macosx --show-sdk-path
指定打印當前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
清空上一次的編譯目錄,當編譯命令運行后默認使用工程的第一個taget目標文件打包安裝。

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

默認情況下,xcodebuild編譯的時候使用的是第一個目標文件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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容