自動打包腳本shell原理
自動打包的原理其實(shí)是利用xcode的xcodebuild語句在終端命令行中執(zhí)行相應(yīng)功能xcodebuild語句绢涡,腳本的功能就是自動的在終端中執(zhí)行xcodebuild語句而省去手動輸入
一. .sh文件創(chuàng)建
1.如果有其他的.sh
文件可復(fù)制一份并级,重命名直接用熄攘,或者自己新建一個,可利用一些IDE工具(VSCode,WebStorm)新建文件溪北,保存為.sh
文件格式智玻,名字我這里暫且命名為autoarchive
2.賦予autoarchive.sh
文件可執(zhí)行權(quán)限遂唧,cd到autoarchive.sh
文件目錄,即命令行輸入cd + 你的autoarchive.sh文件存放的目錄
吊奢,然后再輸入chmod +x autoarchive.sh
運(yùn)行
3.測試一下autoarchive.sh
是否能成功運(yùn)行盖彭,直接打開autoarchive.sh
文件,編寫echo "Hello world!"
,echo
相當(dāng)于打印功能召边,shell腳本還有很多語法铺呵,可網(wǎng)上查資料。然后cd到autoarchive.sh
文件目錄隧熙,命令行中輸入sh ./autoarchive.sh
并運(yùn)行片挂,如果成功打印出Hello world!
創(chuàng)建并且成功
二. 主要用到的就三種xcodebuild語句,以下內(nèi)容是autoarchive.sh
文件內(nèi)容
1.xcodebuild clean ...
打包前的工程清理
# ${ProjectName}project工程中(非workspace工程).xcodeproj的文件名字
# ${Target}project工程中編譯的target贞盯,可省略
# ${WorkspaceName}工程中.xcworkspace的文件名字
# ${Scheme} 當(dāng)前要編譯運(yùn)行的scheme
# configuration ${Debug或者Release} 當(dāng)前是要以Debug運(yùn)行還是以Release運(yùn)行
# -quiet 忽略警告提示打印
# -UseNewBuildSystem=NO 是否使用新的build系統(tǒng)
xcodebuild clean -project "${ProjectName}.xcodeproj" -target "${Target}" -scheme "${Scheme}" -configuration ${Debug或者Release} -quiet -UseNewBuildSystem=NO
# 或者workspace工程
xcodebuild clean -workspace "${WorkspaceName}.xcworkspace" -scheme "${Scheme}" -configuration ${Debug或者Release} -quiet -UseNewBuildSystem=NO
2.xcodebuild archive ...
工程打包音念,.xcarchive文件生成
# ${ProjectName}project工程中(非workspace工程).xcodeproj的文件名字
# ${Target}project工程中編譯的target,可省略
# ${WorkspaceName}工程中.xcworkspace的文件名字
# ${Scheme} 當(dāng)前要編譯運(yùn)行的scheme
# configuration ${Debug或者Release} 當(dāng)前是要以Debug運(yùn)行還是以Release運(yùn)行
# -archivePath 導(dǎo)出的.xcarchive文件存放路徑
# CODE_SIGN_IDENTITY 證書文件名躏敢,可省略(工程配置好闷愤,可編譯成功即`command+B`運(yùn)行通過)
# PROVISIONING_PROFILE 運(yùn)行文件UUID,可省略(工程配置好父丰,可編譯成功即`command+B`運(yùn)行通過)
xcodebuild archive -project "${ProjectName}.xcodeproj" -scheme "${Scheme}" -configuration ${Debug或者Release} -archivePath "導(dǎo)出的.xcarchive文件存放路徑"
3.xcodebuild exportArchive ...
ipa包導(dǎo)出
# -archivePath 導(dǎo)出的.xcarchive文件存放路徑
# exportPath 你想要存放ipa及其其他文件的路徑
# -exportOptionsPlist ExportOptions.plist路徑肝谭,
# 先自己手動從Product->Archive打出一份,打出的包文件信息中會有ExportOptions.plist文件蛾扇,復(fù)制一份拿來用攘烛,或者自己生成,只要.plist中信息與手動生成的ExportOptions.plist文件信息一致就行
xcodebuild -exportArchive -archivePath "導(dǎo)出的.xcarchive文件存放路徑" -exportPath "你想要存放ipa及其其他文件的文件夾路徑" -exportOptionsPlist "ExportOptions.plist路徑"
4.判斷是否導(dǎo)出ipa包成功
# -e后面是你的.ipa文件路徑
if [[ -e "/Users/你的路徑/xxx.ipa" ]]; then
echo "----------------------------------"
echo "------------ipa包已導(dǎo)出------------"
echo "----------------------------------"
open "/Users/你的路徑"
fi
至此镀首,主要的自動化打包腳本就完成了GitHub