XCode自动编译, 打包 并上传到iTunesConnect

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, 按英文字母排序.


你可能感兴趣的:(XCode自动编译, 打包 并上传到iTunesConnect)