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

snake · 2015年05月14日 · 最后由 HellenGo 回复于 2015年06月23日 · 1768 次阅读
本帖已被设为精华帖!

IOS 打包也非常的简单。

准备


首先你得有 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 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 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 中调用,只用命令执行是通过的。这个问题困惑了我好久,最后找到了方案:

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

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

# 思考

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

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册