http://www.cocoachina.com/bbs/read.php?tid=138620
项目里有20多个Target, 每次更新版本都要上传个半天左右.
实在被逼得无奈, 就只好自己琢磨着写个稍微能自动化些的shell
#!/usr/bin/bash
#########################################
# batch rename #
# Input : $1 SCHEME #
# eg:需要编译的scheme #
# Input : $2 PROVISION PREFIX #
# eg: mobileprovision文件的名称 #
#########################################
PROJECT="xcodeproj文件的绝对路径"
SCHEME=$1
IDENTITY="iPhone Distribution: FOO."
PROVISIONING_PROFILE="Distribution Provision File Path"
OUTDIR="输出ipa文件的路径, 最好是绝对路径"
PRODUCTDIR=${OUTDIR}
if [ ! -f $PROVISIONING_PROFILE ]; then
echo "Please download the provision file for "${PROVISIONING_PROFILE}
exit 4;
fi
xcodebuild -project "${PROJECT}" -scheme "${SCHEME}" -configuration Release -sdk iphoneos CONFIGURATION_BUILD_DIR=${OUTDIR} build
if [ $? -eq 0 ]; then
xcrun -sdk iphoneos PackageApplication -v "${PRODUCTDIR}/${SCHEME}.app" -o "${OUTDIR}/${SCHEME}.ipa" --sign "${IDENTITY}" --embed "${PROVISIONING_PROFILE}" ;
if [ $? -eq 0 ]; then
xcrun -sdk iphoneos Validation -online -upload -verbose "${OUTDIR}/${SCHEME}.ipa" | grep -v "shouldContinueUploadForApplication"
fi
fi
然后写个外包的脚本循环输入两个参数就ok了.
需要注意的问题.
1. Provision 文件的名称里不要有空格. xcrun里面调用的一个方法有点笨, 不知道解析"\ "
2. xcrun的设计缺陷, 只能上传到ituneconnect上第一个需要上传的app, 按英文字母排序.