在工程根目錄下新建兩個(gè)文件

項(xiàng)目文件夾
DevelopmentExportOptionsPlist.plist用來(lái)指定打包的類型,xcodebuild.sh是打包執(zhí)行的shell腳本文件。

DevelopmentExportOptionsPlist.plist 文件內(nèi)容
method的類型為String,用來(lái)指定打包ipa的類型,有以下可選項(xiàng)app-store、enterprise、ad-hoc、development,默認(rèn)為development
xcodebuild.sh文件中包括一些需要配置的參數(shù),工程名project_name、打包模式development_mode、scheme名scheme_name。
打包的工程文件分兩種(是否包含cocoapods):project和workspace,如果需要打包的是project,則在archieve中將-workspace替換為-project,將.xcworkspace的路徑替換為.xcodeproj的路徑
#工程名(自定義)
project_name=eHRmobile
#打包模式 Debug/Release(自定義)
development_mode=Release
#scheme名(自定義,一般與工程名相同)
scheme_name=eHRmobile
#plist文件所在路徑
exportOptionsPlistPath=./DevelopmentExportOptionsPlist.plist
#導(dǎo)出.ipa文件所在路徑
exportFilePath=~/Desktop/$project_name-ipa
echo '*** 正在 清理工程 ***'
xcodebuild \
clean -configuration ${development_mode} -quiet || exit
echo '*** 清理完成 ***'
echo '*** 正在 編譯工程 For '${development_mode}
xcodebuild \
archive -workspace ${project_name}.xcworkspace \
-scheme ${scheme_name} \
-configuration ${development_mode} \
-archivePath build/${project_name}.xcarchive -quiet || exit
echo '*** 編譯完成 ***'
echo '*** 正在 打包 ***'
xcodebuild -exportArchive -archivePath build/${project_name}.xcarchive \
-configuration ${development_mode} \
-exportPath ${exportFilePath} \
-exportOptionsPlist ${exportOptionsPlistPath} \
-quiet || exit
# 刪除build包
if [[ -d build ]]; then
rm -rf build -r
fi
if [ -e $exportFilePath/$scheme_name.ipa ]; then
echo "*** .ipa文件已導(dǎo)出 ***"
cd ${exportFilePath}
echo "*** 開始上傳.ipa文件 ***"
#此處上傳分發(fā)應(yīng)用
echo "*** .ipa文件上傳成功 ***"
else
echo "*** 創(chuàng)建.ipa文件失敗 ***"
fi
echo '*** 打包完成 ***'
自動(dòng)打包(需在項(xiàng)目中配置好描述文件、開發(fā)者證書)
使用方式:
在終端中進(jìn)入*.xcodeproj上級(jí)目錄
輸入./xcodebuild.sh即可自動(dòng)打包、如無(wú)執(zhí)行權(quán)限則先執(zhí)行chmod +x xcodebuild.sh
最后會(huì)在桌面上生成打包完成的ipa文件夾。
項(xiàng)目源碼