命令很简单
#!/bin/sh
#计时
SECONDS=0
# 项目名称
project_name=`find . -name *.xcodeproj | awk -F "[/.]" '{print $(NF-1)}'`
# 当前时间(用于区分目录名打包时间)
now=$(date +"%Y-%m-%d_%H-%M-%S")
# scheme名称
scheme_name=${project_name}
# 项目路径【把该.sh文件放在xxx.xcodeproj同一目录下】
project_path='./'
#导出目录
export_path="/Users/guojiang/Desktop/${project_name}/${now}"
#ipa包路径(用于检验是否导出成功)
export_ipa_path = "${export_path}/${project_name}.ipa"
#编译build路径
archive_path="${export_path}/${project_name}.xcarchive"
# 打包配置plist文件路径【这个文件需要先创建】
plist_path='./ExportOptions.plist'
#打包方式
build_type="project"
# workspace/xcodeproj 路径(根据项目是否使用cocoapod,确定打包的方式)
if [ -e "${project_path}/${project_name}.xcworkspace" ];then
workspace_path="${project_path}/${project_name}.xcworkspace"
build_type="workspace"
else
workspace_path="${project_path}/${project_name}.xcodeproj"
build_type="project"
fi
echo ${workspace_path}
# scheme名称
scheme_name=${project_name}
# 配置打包样式:Release/ad-hoc/Debug
configuration='Release'
echo '=============正在清理工程============='
echo $configuration
xcodebuild \
clean -${build_type} ${workspace_path} \
-scheme ${scheme_name} \
-configuration ${configuration} -quiet || exit
echo '清理完成-->>>--正在编译工程:'${workspace_path}
# build
if [ -d ${workspace_path} ];then
xcodebuild archive -${build_type} ${workspace_path} \
-scheme ${scheme_name} \
-configuration ${configuration} \
-archivePath ${archive_path} -quiet || exit
else
echo 'workspace 不存在'
fi
# 检查是否构建成功(build)
if [ -d ${archive_path} ] ; then
echo '=============项目 build 成功============='
else
echo '=============项目 build 失败============='
exit 1
fi
# exprot
echo '编译完成-->>>--开始ipa打包'
xcodebuild -exportArchive -archivePath ${archive_path} \
-configuration ${configuration} \
-exportPath ${export_path} \
-exportOptionsPlist ${plist_path} \
-quiet || exit
if [ -e ${export_ipa_path} ]; then
#删除编译包文件
rm -rf $archive_path
echo '=============ipa包导出成功============='
else
echo '=============ipa包导出失败============'
echo "${export_ipa_path}"
exit 1
fi
//打包完成,打开目录
open ${export_path}
# 输出总用时
echo "执行耗时: ${SECONDS}秒"
exit 0
还有这命令需要配置一个plist文件
手动创建一个ExportOptions.plist文件就行,还是在同一目录下
本想加上自动发布到fir.im,测试了多次,发现经常失败,成功率不高,所以只做了打包。
有哪里不正确的,欢迎指出!
网友评论