2018-07-09 自动打包到上传fir 和可视化操作

iOS 自动打包 从shell脚本到 jenkins的可视化操作

1.
1.png

2.
2.png

3.
3.png

4.
4.png

然后我们来研究下shell脚本怎么配置

#注意路径请安格式写不要空格


#这里配置我们需要的参数
#工程名
project_name="WaWang"

#打包模式 Debug/Release
development_mode="Release"

#上传fireToken
upload_token="48093c9614dc50be05a5cb3563424d30"

#scheme名
scheme_name="WaWang"


#工程绝对路径
#project_path="/Users/msh/wawang-ios/工程/WaWang"
project_path=$(cd `dirname $0`; pwd)

#build文件夹路径
build_path="$project_path/build"

#上传哪里
upload_style=1

#这里配置我们需要的打包模式
echo "\033[36;1m请选择打包方式(输入序号,按回车即可) \033[0m"
echo "\033[33;1m1. 上传fire       \033[0m"
echo "\033[33;1m2. 上传AppStore    \033[0m"
# 读取用户输入并存到变量里
read parameter
sleep 0.5
method="$parameter"
# 判读用户是否有输入
if [ -n "$method" ]
then
if [ "$method" = "1" ] ; then
upload_style=1
elif [ "$method" = "2" ] ; then
upload_style=2
else
echo "输入的参数无效!!!"
exit 1
fi
fi

# AdHoc,AppStore,Enterprise三种打包方式的区别: http://blog.csdn.net/lwjok2007/article/details/46379945
echo "\033[36;1m请选择打包方式(输入序号,按回车即可) \033[0m"
echo "\033[33;1m1. AdHoc       \033[0m"
echo "\033[33;1m2. AppStore    \033[0m"
echo "\033[33;1m3. Development  \033[0m"
# 读取用户输入并存到变量里
read parameter
sleep 0.5
method="$parameter"
# 判读用户是否有输入
if [ -n "$method" ]
then
if [ "$method" = "1" ] ; then
build_path="$project_path/build/AdHoc"
elif [ "$method" = "2" ] ; then
build_path="$project_path/build/AppStore"
elif [ "$method" = "3" ] ; then
build_path="$project_path/build/Development"
else
echo "输入的参数无效!!!"
exit 1
fi
fi


#这里是xcode的打包编译方式无需改动 如果项目时project就改动.xcworkspace和 workspace
#plist文件所在路径
exportOptionsPlistPath="$build_path/exportOptions.plist"
#导出Archive文件所在路径
appArchivePath="$build_path/$scheme_name"
appArchiveFilePath="$build_path/$scheme_name.xcarchive"

#导出.ipa文件所在路径
exportFilePath="$build_path/$scheme_name"
exportFileFilePath="$build_path/$scheme_name/$scheme_name.ipa"

echo '*** 正在 清理工程 ***'

xcodebuild clean -workspace ${project_name}.xcworkspace \
-scheme ${scheme_name} \
-configuration ${development_mode} -quiet  || exit

echo '*** 清理完成 ***'



echo '*** 正在 编译工程 For '${development_mode}

xcodebuild archive -workspace ${project_name}.xcworkspace \
-scheme ${scheme_name} \
-configuration ${development_mode} \
-archivePath ${appArchiveFilePath} \
-allowProvisioningUpdates

echo '*** 编译完成 ***'


echo '*** 正在 打包 ***'
xcodebuild  -exportArchive \
-archivePath ${appArchiveFilePath} \
-exportPath ${exportFilePath} \
-exportOptionsPlist ${exportOptionsPlistPath} \
-allowProvisioningUpdates


if [ -e $exportFilePath/$scheme_name.ipa ]; then
echo "*** .ipa文件已导出 ***"
open $exportFilePath
else
echo "*** 创建.ipa文件失败 ***"
fi
echo '*** 打包完成 ***'




echo '*** 上传分发平台开始 ***'

#上传分发平台
if [ $upload_style == 1 ] ; then
fir login -T $upload_token       # fir.im token
fir publish $exportFileFilePath
echo "*** fir上传成功 ***"

else
echo "*** App Store上传失败 ***"
###验证并上传到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
fi
echo '*** 上传分发平台完成 ***'
#
#exit 0

你可能感兴趣的:(2018-07-09 自动打包到上传fir 和可视化操作)