iOS shell脚本自动打包
2019-06-20 本文已影响0人
尤先森
在我们开发完APP后,打包上架很正常,但打包经常需要很长的时间,特别是有时候只是一个小BUG,改完立马又要给测试们测试,改错一分钟,打包半小时!这打包的过程既浪费时间又降低效率。
shell自动打包可以以很快的速度完成打包动作,从而提高效率。
1.Xcode设置
- Xcode关闭自动证书配置,手动配置,与下文中的plist配置文件名保持一致即可。
- 确认BundleID一致,且Xcode不报错
2.准备plist文件
ad-hoc模板
image.pngApp Store模板
image.png3. 准备脚本shell.sh
tips: 如果项目使用pods管理,没有.xcworkspace,只有xcodeproj:只需将-project
替换成-workspace
xcodebuild \
archive -project ${project_name}.xcodeproj \
↓↓↓↓↓↓↓↓↓↓↓↓↓ 替换 ↓↓↓↓↓↓↓↓↓↓↓↓↓
xcodebuild \
archive -workspace ${project_name}.xcworkspace \
#工程名
project_name=shell脚本打包
#打包模式 Debug/Release
development_mode=release
#scheme名
scheme_name=shell脚本打包
#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 -project ${project_name}.xcodeproj \
-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 '*** 打包完成 ***'
plist文件以及脚本文件
image.png运行
- 打开命令行工具 cd 脚本文件所在文件夹路径
./xcodebuild.sh
- 桌面查收ipa文件夹
顺便发布到蒲公英
在ipa文件到处完成后,调用蒲公英的api。
上文代码替换如下内容(*号中的内容)即可。
if [ -e $exportFilePath/$scheme_name.ipa ]; then
echo "*** .ipa文件已导出 ***"
cd ${exportFilePath}
echo "*** 开始上传.ipa文件 ***"
#此处上传分发应用
echo "************ 开始上传到蒲公英 ************"
#上传到蒲公英
#蒲公英aipKey
MY_PGY_API_K=替换成你的蒲公英aipKey
#蒲公英uKey
MY_PGY_UK=替换成你的蒲公英uKey
curl -F "file=@${exportFilePath}/${scheme_name}.ipa" -F "uKey=${MY_PGY_UK}" -F "_api_key=${MY_PGY_API_K}" https://qiniu-storage.pgyer.com/apiv1/app/upload
echo "************ 蒲公英回调完成 ************"
else
echo "*** 创建.ipa文件失败 ***"
fi
echo '*** 打包完成 ***'