iOS自动打包脚本制作
在工程根目录下新建两个文件
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><none></string>
</dict>
</plist>
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).
3、如果报错如下
https://www.baidu.com/s?wd=xcode-select%3A+error%3A+tool+%27xcodebuild%27+requires+Xcode%2C+but+active+developer+directory+%27%2FLibrary%2FDeveloper%2FCommandLineTools%27+is+a+command+line+tools+instance&tn=84053098_3_dg&ie=utf-8
(1)找到xcode-select的当前路径终端命令行
xcode-select --print-path
/Library/Developer/CommandLineTools
(2)设置xcode-select到指定位置
sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/
(3)验证是否设置成功
xcode-select --print-path
/Applications/Xcode.app/Contents/Developer