Snake's Home

自动化测试与持续集成方案--IOS Daily Build

首先你得有Mac的电脑,xcode, 开发者证书。
安装 xctool.

配置好证书,然后在命令行转到项目目录.

1
2
3
4
5
6
1.清除  
EthantekiiMac:CTest ethan$ xcodebuild clean
2.编译
EthantekiiMac:CTest ethan$ xcodebuild -target CTest -configuration Release
3.打包ipa
EthantekiiMac:CTest ethan$ xcrun -sdk iphoneos PackageApplication -v /Volumes/workildCommand/test/CTestild/Release-iphoneos/CTest.app -o /Volumes/workildCommand/test/CTest/CTest.ipa

跟 android ant 打包一样,也是三条命令

#!/bin/sh
#  autoBuild.sh
#  Created by Anderson on 14-04-28. 
#  Copyright (c) 2014年 Anderson. All rights reserved.
###############################################
#使用方法
#./autoBuild.sh arg1 arg2
#arg1 项目的路径,例如:/Users/apple/code
#arg2 为项目编译ID
###############################################

###############################################

#参数检查
if [ -z "$1" ]; 
then
echo "error:项目路径为空"
exit 1
fi
if [ -z "$2" ]; 
then 
echo "error:项目编译ID为空"
exit 1
fi
#日志地址
logPath="${1}/log.txt"
#ipa地址 
ipaPath="${1}/${2}.ipa"
##############################################

#清理项目 
cd $1
xcodebuild clean

###############################################

#编译并将日志写到文件 正式使用需要修改 Debug/Release
xcodebuild -target XXXX -configuration Debug > ${logPath}
#判断是否编译成功
if [[ $? -eq 0 ]];  
then
echo "build success"
else
cho "build error"
exit 2
fi

###############################################
#生成ipa
xcrun -sdk iphoneos PackageApplication -v build/Debug-iphoneos/*.app -o ${ipaPath}
if [[ $? -eq 0 ]];  then
rm -rf build
echo "create ipa success"
exit 0
else
echo "create ipa error"
exit 2
fi

打包能成功。通过Debug/Release来控制签名和不签名。

Jenkins 上要装xcode 的插件。 配置好后,你会发现一直失败,每次都会在codsign出错。然后你不在jenkins中调用,只用命令执行是通过的。这个问题困惑了我好久,最后找到了方案:
在jenkins中设置Unlock Keychain.

本文发表在:Testerhome