自动打包脚本shell原理
自动打包的原理其实是利用xcode的xcodebuild语句在终端命令行中执行相应功能xcodebuild语句,脚本的功能就是自动的在终端中执行xcodebuild语句而省去手动输入
一. .sh文件创建
1.如果有其他的.sh
文件可复制一份,重命名直接用,或者自己新建一个,可利用一些IDE工具(VSCode,WebStorm)新建文件,保存为.sh
文件格式,名字我这里暂且命名为autoarchive
2.赋予autoarchive.sh
文件可执行权限,cd到autoarchive.sh
文件目录,即命令行输入cd + 你的autoarchive.sh文件存放的目录
,然后再输入chmod +x autoarchive.sh
运行
3.测试一下autoarchive.sh
是否能成功运行,直接打开autoarchive.sh
文件,编写echo "Hello world!"
,echo
相当于打印功能,shell脚本还有很多语法,可网上查资料。然后cd到autoarchive.sh
文件目录,命令行中输入sh ./autoarchive.sh
并运行,如果成功打印出Hello world!
创建并且成功
二. 主要用到的就三种xcodebuild语句,以下内容是autoarchive.sh
文件内容
1.xcodebuild clean ...
打包前的工程清理
# ${ProjectName}project工程中(非workspace工程).xcodeproj的文件名字
# ${Target}project工程中编译的target,可省略
# ${WorkspaceName}工程中.xcworkspace的文件名字
# ${Scheme} 当前要编译运行的scheme
# configuration ${Debug或者Release} 当前是要以Debug运行还是以Release运行
# -quiet 忽略警告提示打印
# -UseNewBuildSystem=NO 是否使用新的build系统
xcodebuild clean -project "${ProjectName}.xcodeproj" -target "${Target}" -scheme "${Scheme}" -configuration ${Debug或者Release} -quiet -UseNewBuildSystem=NO
# 或者workspace工程
xcodebuild clean -workspace "${WorkspaceName}.xcworkspace" -scheme "${Scheme}" -configuration ${Debug或者Release} -quiet -UseNewBuildSystem=NO
2.xcodebuild archive ...
工程打包,.xcarchive文件生成
# ${ProjectName}project工程中(非workspace工程).xcodeproj的文件名字
# ${Target}project工程中编译的target,可省略
# ${WorkspaceName}工程中.xcworkspace的文件名字
# ${Scheme} 当前要编译运行的scheme
# configuration ${Debug或者Release} 当前是要以Debug运行还是以Release运行
# -archivePath 导出的.xcarchive文件存放路径
# CODE_SIGN_IDENTITY 证书文件名,可省略(工程配置好,可编译成功即`command+B`运行通过)
# PROVISIONING_PROFILE 运行文件UUID,可省略(工程配置好,可编译成功即`command+B`运行通过)
xcodebuild archive -project "${ProjectName}.xcodeproj" -scheme "${Scheme}" -configuration ${Debug或者Release} -archivePath "导出的.xcarchive文件存放路径"
3.xcodebuild exportArchive ...
ipa包导出
# -archivePath 导出的.xcarchive文件存放路径
# exportPath 你想要存放ipa及其其他文件的路径
# -exportOptionsPlist ExportOptions.plist路径,
# 先自己手动从Product->Archive打出一份,打出的包文件信息中会有ExportOptions.plist文件,复制一份拿来用,或者自己生成,只要.plist中信息与手动生成的ExportOptions.plist文件信息一致就行
xcodebuild -exportArchive -archivePath "导出的.xcarchive文件存放路径" -exportPath "你想要存放ipa及其其他文件的文件夹路径" -exportOptionsPlist "ExportOptions.plist路径"
4.判断是否导出ipa包成功
# -e后面是你的.ipa文件路径
if [[ -e "/Users/你的路径/xxx.ipa" ]]; then
echo "----------------------------------"
echo "------------ipa包已导出------------"
echo "----------------------------------"
open "/Users/你的路径"
fi
至此,主要的自动化打包脚本就完成了GitHub
网友评论