#author by CooFree
#腳本所在的目錄必須和WorkSpace或者說工程主目錄所在的目錄在同一個(gè)目錄層級(jí)中
#在終端中cd到項(xiàng)目路徑下娩贷,輸入sh autobuild.sh運(yùn)行腳本嘲恍,按照步驟輸入相應(yīng)的序號(hào)點(diǎn)擊回車鍵即可完成打包選擇(如果運(yùn)行的時(shí)候出現(xiàn)Permission denied,請先在終端中執(zhí)行chmod a+x *.sh再運(yùn)行即可
#運(yùn)行完成后后項(xiàng)目里會(huì)多了一個(gè)autoExportIpa文件夾耻讽,打開文件夾即可找到ipa包。
#配置打包方式Release或者Debug
#工程名字
Project_Name="自動(dòng)化打包" #這里填的是工程名字,一般工程名都是英文秉撇,我這里是為了方便起了中文名字
#在終端中提示 根據(jù)輸入的序號(hào)不同來選擇是打debug包還是release包
echo "~~~~~~~~~~~~選擇打包方式(輸入序號(hào))~~~~~~~~~~~~~~~"
echo " 1 Debug"
echo " 2 Release"
read parameter
sleep 0.5
method="$parameter"
if [ -n "$method" ]
then
if [ "$method" = "1" ]
then
Configuration="Debug"
elif [ "$method" = "2" ]
then
Configuration="Release"
else
#如果是其他輸入,則在終端中提示參數(shù)無效并退出
echo "參數(shù)無效...."
exit 1
fi
fi
#基礎(chǔ)主路徑
BUILD_PATH=./autoExportIpa
#配置打包結(jié)果輸出的路徑
#AdHoc版本
AdHocPrijectOutPath=${BUILD_PATH}
ADHOCExportOptionsPlist="./auto.plist" #這里的auto.plist是和在工程目錄下新建的plist文件是一樣的
#這里都執(zhí)行命令中是在xcworkspace工程中執(zhí)行的秋泄,如果工程不是xcworkspace琐馆,可以把-workspace的內(nèi)容刪掉
#首先清除原來的文件夾
rm -rf ${BUILD_PATH}
#創(chuàng)建文件夾,路徑需要一層一層創(chuàng)建恒序,不然會(huì)創(chuàng)建失敗
mkdir ${BUILD_PATH}
#編譯文件
#mkdir ${CONFIGURATION_BUILD_PATH_ADHOC}
#打包輸出的文件
mkdir ${AdHocPrijectOutPath}
#在終端中提示 根據(jù)輸入的序號(hào)不同瘦麸,打包成不同版本的ipa 因?yàn)轫?xiàng)目中是否使用CocoaPods編譯時(shí)的路徑是不一樣的
echo "~~~~~~~~~~~~項(xiàng)目中是否使用CocoaPods~~~~~~~~~~~~~~~"
echo " 1 是"
echo " 2 否"
# 讀取用戶在終端中輸入并存到變量里
read parameter
sleep 0.5
method="$parameter"
# 判讀用戶是否有輸入
if [ -n "$method" ]
then
if [ "$method" = "1" ]
then
#編譯-------項(xiàng)目中使用了CocoaPods
xcodebuild archive -workspace ${Project_Name}.xcworkspace -scheme $Project_Name -configuration $Configuration -archivePath ${BUILD_PATH}/$Project_Name-adhoc.xcarchive
elif [ "$method" = "2" ]
then
#編譯-------項(xiàng)目中未使用CocoaPods
xcodebuild archive -scheme $Project_Name -configuration $Configuration -archivePath ${BUILD_PATH}/$Project_Name-adhoc.xcarchive
else
#如果是其他輸入,則在終端中提示參數(shù)無效并退出
echo "參數(shù)無效...."
exit 1
fi
fi
#打包
xcodebuild -exportArchive -archivePath ${BUILD_PATH}/$Project_Name-adhoc.xcarchive -exportOptionsPlist $ADHOCExportOptionsPlist -exportPath ${AdHocPrijectOutPath}
auto.plist內(nèi)容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>compileBitcode</key>
<false/>
<key>destination</key>
<string>export</string>
<key>iCloudContainerEnvironment</key>
<string>Production</string>
<key>method</key>
<string>development</string>
<key>provisioningProfiles</key>
<dict>
<key>bundleID名字</key>
<string>profile名字</string>
</dict>
<key>signingCertificate</key>
<string>Apple Development</string>
<key>signingStyle</key>
<string>manual</string>
<key>stripSwiftSymbols</key>
<true/>
<key>teamID</key>
<string>teamID名字</string>
<key>thinning</key>
<string><none></string>
</dict>
</plist>