不用频繁更改配置,两句shell脚本完成iOS打包

因为之前每次打包都需要更改工程的签名和证书,debug改成distribution,然后打完包再改回来,既耽误时间,打包的时候还不能干别的要干等着,所以希望通过脚本来打包,解决这个问题。
我们都知道执行xcodebuild命令就可以实现用终端打包,其中最基础最核心的是下面两个命令:

// 打包,scheme名在Product->Scheme->Manager Schemes...查看
xcodebuild archive -workspace 工程名.xcworkspace -scheme scheme名

执行这条命令以后会生成一个如下图所示的包文件


WechatIMG39.png

这个包可以用于解崩溃日志等,但是不能直接安装在手机上。我们还需要导出一个可安装的ipa文件。

// 导出ipa包
xcodebuild -exportArchive -archivePath 上图包文件名.xcarchive -exportPath ExportDestination -exportOptionsPlist 'ExportOptions.plist'

其中.xcarchive就是刚才生成的包文件,那ExportOptions.plist又是什么呢?这个plist文件就是存储着对应的签名或者证书配置,Xcode9之后这个文件时会在每一次我们使用Xcode中的Archive打包后,导出的文件夹中找到,我们从之前打包的文件夹里取出来就可以直接用了。

把这两句命令写成shell脚本,就可以更简单地完成打包了,脚本的内容如下:

xcodebuild archive -workspace 工程名.xcworkspace -scheme 工程名 -archivePath 包存储的地址/包文件名
xcodebuild -exportArchive -archivePath 包存储的地址/包文件名.xcarchive -exportPath -exportPath 包存储的地址/目标文件夹名 -exportOptionsPlist 'ExportOptions.plist'

最后我们可以函数化这个shell脚本,使得以后更改配置更方便:

archive(){
#***********配置
#工程名
ProjectName=$1
#scheme名字
Scheme=$2
#日期
Date=`date +%Y%m%d_%H%M`
#工程路径
Workspace=$3
#build路径
BuildDir=$4
#plist文件名,默认放在工程文件路径的位置
PlistName=$5

#创建构建和输出的路径
mkdir -p $BuildDir
Date=`date +%Y%m%d_%H%M`

#构建
xcodebuild archive \
-workspace "$ProjectName.xcworkspace" \
-scheme "$Scheme" \
-archivePath "$BuildDir/$ProjectName"

#生成ipa
xcodebuild -exportArchive \
-archivePath "$BuildDir/$ProjectName.xcarchive" \
-exportPath "$BuildDir/$ProjectName$Date" \
-exportOptionsPlist "$Workspace/$PlistName"

}

archive "xxx" "xxx" "..../xxx" "..../Package" "ExportOptions.plist"

其中xxx是工程名,两个...分别指工程路径和打出来的包希望存储的目标路径。
这样就能完成最基本的打包了,此外xcodebuild还有其他参数:
-configuration 设置Release还是Debug
打包前还可以按需clean:

xcodebuild -workspace 工程名.xcworkspace -scheme scheme名

你可能感兴趣的:(不用频繁更改配置,两句shell脚本完成iOS打包)