美文网首页
记录Xcode项目使用shell自动打包

记录Xcode项目使用shell自动打包

作者: 小江9527 | 来源:发表于2020-06-15 11:32 被阅读0次

命令很简单

#!/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,测试了多次,发现经常失败,成功率不高,所以只做了打包。

有哪里不正确的,欢迎指出!

相关文章

网友评论

      本文标题:记录Xcode项目使用shell自动打包

      本文链接:https://www.haomeiwen.com/subject/feecxktx.html