巴黎的灯光下 发表于 2017-6-22 11:33:53

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

准备首先你得有Mac的电脑,xcode, 开发者证书。
安装 xctool, 如不会,请自行度娘。
打包过程配置好证书,然后在命令行转到项目目录(如果你证书配置搞不定,让开发帮忙。)
1.清除
EthantekiiMac:CTest ethan$ xcodebuild clean
2.编译
EthantekiiMac:CTest ethan$ xcodebuild -target CTest -configuration Release
3.打包ipa
EthantekiiMac:CTest ethan$ xcrun -sdk iphoneosPackageApplication -v /Volumes/workildCommand/test/CTestild/Release-iphoneos/CTest.app -o /Volumes/workildCommand/test/CTest/CTest.ipa 跟 android ant 打包一样,也是三条命令。
然后我整了个脚本:
#!/bin/sh
#autoBuild.sh
#Created by Xie Ming on 15-04-28.
#Copyright (c) 2015年 XieMing. 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中调用,只用命令执行是通过的。这个问题困惑了我好久,最后找到了方案:

https://testerhome.com/photo/2015/e36819fc3a96d37651237825eb195493.png


在jenkins中设置Unlock Keychain.
现在能打包成功。
但是下一个问题又来了。
打好的包只是在运行打包的机子上。
找到一种解决方案是配置FTP,然后用网页下载。
https://testerhome.com/photo/2015/68c41a33c9d3a24b324b23252b69f7b6.png


但是没有FTP服务器资源。
最终自己写了个脚本,用邮件发附件形式发出来,虽然很丑,也算是曲线救国把。
https://testerhome.com/photo/2015/b080cba76df9633fac9bd16636ef1ab3.png


#思考好像打包过程中,可以把单元测试也一起做了,没有去尝试,等有空了去看看。

草帽路飞UU 发表于 2017-6-22 11:47:50

谢谢楼主分享

巴黎的灯光下 发表于 2017-6-22 11:48:34

草帽路飞UU 发表于 2017-6-22 11:47
谢谢楼主分享

不用谢!:)
页: [1]
查看完整版本: [分享] 自动化测试与持续集成方案--IOS Daily Build