因為之前每次打包都需要更改工程的簽名和證書切油,debug改成distribution蝙斜,然后打完包再改回來,既耽誤時間澎胡,打包的時候還不能干別的要干等著孕荠,所以希望通過腳本來打包,解決這個問題攻谁。
我們都知道執(zhí)行xcodebuild命令就可以實現(xiàn)用終端打包稚伍,其中最基礎(chǔ)最核心的是下面兩個命令:
// 打包,scheme名在Product->Scheme->Manager Schemes...查看
xcodebuild archive -workspace 工程名.xcworkspace -scheme scheme名
執(zhí)行這條命令以后會生成一個如下圖所示的包文件
這個包可以用于解崩潰日志等戚宦,但是不能直接安裝在手機(jī)上个曙。我們還需要導(dǎo)出一個可安裝的ipa文件。
// 導(dǎo)出ipa包
xcodebuild -exportArchive -archivePath 上圖包文件名.xcarchive -exportPath ExportDestination -exportOptionsPlist 'ExportOptions.plist'
其中.xcarchive就是剛才生成的包文件受楼,那ExportOptions.plist又是什么呢垦搬?這個plist文件就是存儲著對應(yīng)的簽名或者證書配置,Xcode9之后這個文件時會在每一次我們使用Xcode中的Archive打包后艳汽,導(dǎo)出的文件夾中找到悼沿,我們從之前打包的文件夾里取出來就可以直接用了。
把這兩句命令寫成shell腳本骚灸,就可以更簡單地完成打包了糟趾,腳本的內(nèi)容如下:
xcodebuild archive -workspace 工程名.xcworkspace -scheme 工程名 -archivePath 包存儲的地址/包文件名
xcodebuild -exportArchive -archivePath 包存儲的地址/包文件名.xcarchive -exportPath -exportPath 包存儲的地址/目標(biāo)文件夾名 -exportOptionsPlist 'ExportOptions.plist'
最后我們可以函數(shù)化這個shell腳本,使得以后更改配置更方便:
archive(){
#***********配置
#工程名
ProjectName=$1
#scheme名字
Scheme=$2
#日期
Date=`date +%Y%m%d_%H%M`
#工程路徑
Workspace=$3
#build路徑
BuildDir=$4
#plist文件名甚牲,默認(rèn)放在工程文件路徑的位置
PlistName=$5
#創(chuàng)建構(gòu)建和輸出的路徑
mkdir -p $BuildDir
Date=`date +%Y%m%d_%H%M`
#構(gòu)建
xcodebuild archive \
-workspace "$ProjectName.xcworkspace" \
-scheme "$Scheme" \
-archivePath "$BuildDir/$ProjectName"
#生成ipa
xcodebuild -exportArchive \
-archivePath "$BuildDir/$ProjectName.xcarchive" \
-exportPath "$BuildDir/$ProjectName$Date" \
-exportOptionsPlist "$Workspace/$PlistName"
}
archive "xxx" "xxx" "..../xxx" "..../Package" "ExportOptions.plist"
其中xxx是工程名义郑,兩個...分別指工程路徑和打出來的包希望存儲的目標(biāo)路徑。
這樣就能完成最基本的打包了丈钙,此外xcodebuild還有其他參數(shù):
-configuration 設(shè)置Release還是Debug
打包前還可以按需clean:
xcodebuild -workspace 工程名.xcworkspace -scheme scheme名