使用方法
if [ ! -d ./IPADir ]; then mkdir -p IPADir; fi
工程绝对路径
project_path=$(cd dirname $0
; pwd)
工程名 将XXX替换成自己的工程名
project_name=XXX
scheme名 将XXX替换成自己的sheme名
scheme_name=XXX
打包模式 Debug/Release
development_mode=Debug
build文件夹路径
build_path=${project_path}/build
plist文件所在路径
exportOptionsPlistPath=${project_path}/exportTest.plist
导出.ipa文件所在路径
exportIpaPath=${project_path}/IPADir/${development_mode}
echo "Place enter the number you want to export ? [ 1:app-store 2:ad-hoc] "
#
read number while([[ $number != 1 ]] && [[ $number != 2 ]]) do echo "Error! Should enter 1 or 2" echo "Place enter the number you want to export ? [ 1:app-store 2:ad-hoc] " read number done
if [ $number == 1 ];then development_mode=Release exportOptionsPlistPath=${project_path}/exportAppstore.plist else development_mode=Debug exportOptionsPlistPath=${project_path}/exportTest.plist fi
echo '///-----------' echo '/// 正在清理工程' echo '///-----------' xcodebuild \ clean -configuration ${development_mode} -quiet || exit
echo '///--------' echo '/// 清理完成' echo '///--------' echo ''
echo '///-----------' echo '/// 正在编译工程:'${development_mode} echo '///-----------' xcodebuild \ archive -workspace ${project_path}/${project_name}.xcworkspace \ -scheme ${scheme_name} \ -configuration ${development_mode} \ -archivePath ${build_path}/${project_name}.xcarchive -quiet || exit
echo '///--------' echo '/// 编译完成' echo '///--------' echo ''
echo '///----------' echo '/// 开始ipa打包' echo '///----------' xcodebuild -exportArchive -archivePath ${build_path}/${project_name}.xcarchive \ -configuration ${development_mode} \ -exportPath ${exportIpaPath} \ -exportOptionsPlist ${exportOptionsPlistPath} \ -quiet || exit
if [ -e $exportIpaPath/$scheme_name.ipa ]; then echo '///----------' echo '/// ipa包已导出' echo '///----------' open $exportIpaPath else echo '///-------------' echo '/// ipa包导出失败 ' echo '///-------------' fi echo '///------------' echo '/// 打包ipa完成 ' echo '///-----------=' echo ''
echo '///-------------' echo '/// 开始发布ipa包 ' echo '///-------------'
if [ $number == 1 ];then
验证并上传到App Store
将-u 后面的XXX替换成自己的AppleID的账号,-p后面的XXX替换成自己的密码
altoolPath="/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework/Versions/A/Support/altool" "$altoolPath" --validate-app -f ${exportIpaPath}/${scheme_name}.ipa -u XXX -p XXX -t ios --output-format xml "$altoolPath" --upload-app -f ${exportIpaPath}/${scheme_name}.ipa -u XXX -p XXX -t ios --output-format xml else
上传到Fir
将XXX替换成自己的Fir平台的token
fir login -T XXX fir publish $exportIpaPath/$scheme_name.ipa
fi
exit 0