ios开发批量打包
iOS开发中,打包是一个非常重要的环节,也是一个比较繁琐的过程。当我们需要打包多个应用时,手动一个一个打包会非常耗费时间和精力。因此,批量打包就可以帮助我们提高效率。本文将为大家介绍iOS开发中批量打包的原理和具体步骤。
一、原理
在iOS开发中,每个项目都需要进行打包。每个项目的打包都需要进行以下步骤:
1.验证证书和配置文件
2.编译代码
3.打包
4.上传应用商店或者分发
在批量打包中,我们只需要将每个项目的信息以及证书和配置文件保存在一个plist文件中,然后通过脚本去自动化执行以上步骤,从而实现批量打包的目的。因此,批量打包的原理就是通过自动化的脚本去执行每个项目的编译、打包和上传操作。
二、步骤
1.创建plist文件
打开Xcode,选择File -> New -> File,选择Property List,命名为Packaging.plist,在plist文件中添加以下项:
- appName:应用名称
- bundleID:应用Bundle ID
- version:应用版本号
- build:应用build号
- teamID: 开发者团队ID
- itms: 是否上传应用商店
- adhoc: 是否进行adhoc分发
- configuration: 编译的configuration(Debug/Release)
2.编写打包脚本
打开终端,输入以下命令创建一个Shell脚本:
touch pack.sh
使用vim编辑脚本,添加以下内容:
#!/bin/bash
#读取plist文件
while read LINE
do
#获取应用信息
appName=$(echo "$LINE" | grep "appName" | sed 's/.*\
bundleID=$(echo "$LINE" | grep "bundleID" | sed 's/.*\
version=$(echo "$LINE" | grep "version" | sed 's/.*\
build=$(echo "$LINE" | grep "build" | sed 's/.*\
teamID=$(echo "$LINE" | grep "teamID" | sed 's/.*\
itms=$(echo "$LINE" | grep "itms" | sed 's/.*\
adhoc=$(echo "$LINE" | grep "adhoc" | sed 's/.*\
configuration=$(echo "$LINE" | grep "configuration" | sed 's/.*\
#验证证书和配置文件,如果不存在则退出
security find-identity -v -p codesigning | grep "$teamID" > /dev/null
if [ "$?" != "0" ]
then
echo "没有找到对应的证书,请检查plist文件中teamID是否正确!"
exit 1
fi
#编译代码
xcodebuild -scheme $appName -configuration $configuration clean
xcodebuild -scheme $appName -configuration $configuration archive -archivePath build/$appName.xcarchive
#打包
if [ "$adhoc" == "true" ]
then
xcodebuild -exportArchive -archivePath build/$appName.xcarchive -exportOptionsPlist adhocExportOptions.plist -exportPath build
else
xcodebuild -exportArchive -archivePath build/$appName.xcarchive -exportOptionsPlist appStoreExportOptions.plist -exportPath build
fi
#上传应用商店
if [ "$itms" == "true" ]
then
altoolPath=/Applications/Xcode.app/Contents/Applications/Application