iOS自动化打包xcodebuild

2,220 阅读2分钟

iOS自动打包脚本制作

在工程根目录下新建两个文件

1
DevelopmentExportOptionsPlist.plist用来指定打包的类型,xcodebuild.sh是打包执行的shell脚本文件。 第一次可以通过手动打包获取,完整plist源码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>compileBitcode</key>
	<false/>
	<key>destination</key>
	<string>export</string>
	<key>method</key>
	<string>enterprise</string>
	<key>signingStyle</key>
	<string>automatic</string>
	<key>stripSwiftSymbols</key>
	<true/>
	<key>teamID</key>
	<string>KV6556Y343</string>
	<key>thinning</key>
	<string>&lt;none&gt;</string>
</dict>
</plist>

2

method的类型为String,用来指定打包ipa的类型,有以下可选项app-store、enterprise、ad-hoc、development,默认为development

xcodebuild.sh文件中包括一些需要配置的参数,工程名project_name、打包模式development_mode、scheme名scheme_name。

打包的工程文件分两种(是否包含cocoapods):project和workspace,如果需要打包的是project,则在archieve中将-workspace替换为-project,将.xcworkspace的路径替换为.xcodeproj的路径

#工程名(自定义)
project_name=eHRmobile

#打包模式 Debug/Release(自定义)
development_mode=Release

#scheme名(自定义,一般与工程名相同)
scheme_name=eHRmobile

#plist文件所在路径
exportOptionsPlistPath=./DevelopmentExportOptionsPlist.plist

#导出.ipa文件所在路径
exportFilePath=~/Desktop/$project_name-ipa

echo '*** 正在 清理工程 ***'
xcodebuild \
clean -configuration ${development_mode} -quiet  || exit 
echo '*** 清理完成 ***'


echo '*** 正在 编译工程 For '${development_mode}
xcodebuild \
archive -workspace ${project_name}.xcworkspace \
-scheme ${scheme_name} \
-configuration ${development_mode} \
-archivePath build/${project_name}.xcarchive -quiet  || exit
echo '*** 编译完成 ***'


echo '*** 正在 打包 ***'
xcodebuild -exportArchive -archivePath build/${project_name}.xcarchive \
-configuration ${development_mode} \
-exportPath ${exportFilePath} \
-exportOptionsPlist ${exportOptionsPlistPath} \
-quiet || exit

# 删除build包
if [[ -d build ]]; then
    rm -rf build -r
fi

if [ -e $exportFilePath/$scheme_name.ipa ]; then
    echo "*** .ipa文件已导出 ***"
    cd ${exportFilePath}
    echo "*** 开始上传.ipa文件 ***"
    #此处上传分发应用
    echo "*** .ipa文件上传成功 ***"
else
    echo "*** 创建.ipa文件失败 ***"
fi
echo '*** 打包完成 ***'

自动打包(需在项目中配置好描述文件、开发者证书) 使用方式: 在终端中进入*.xcodeproj上级目录 输入./xcodebuild.sh即可自动打包、如无执行权限则先执行chmod +x xcodebuild.sh

最后会在桌面上生成打包完成的ipa文件夹。

注意: 1、如果报错如下,说明你的xcode安装目录有问题

xcrun: error: active developer path ("/Applications/Xcode.app/Contents/Developer") does not exist

将xcode拷贝至Applications后执行下面命令:

xcode-select -switch /Applications/Xcode.app/Contents/Developer

2、如果报错如下

 The project named "" does not contain a scheme named ""

解决方案:Choose Scheme > Manage Schemes (from the Product Menu).

参考文章