陈斌彬的技术博客

Stay foolish,stay hungry

使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境(原创)

如何使用Jenkins+Calabash搭建持续集成开发环境。

环境

  • XCode 7.0
  • Mac OS X 10.10.0

Cocoapods

CocoaPods简介

CocoaPods是一个负责管理iOS项目中第三方开源代码的工具。CocoaPods项目的源码在Github上管理。该项目开始于2011年8月12日,经过一年多的发展,现在已经超过1000次提交,并且持续保持活跃更新。开发iOS项目不可避免地要使用第三方开源库,CocoaPods的出现使得我们可以节省设置和更新第三方开源库的时间。

安装Cocoapods

1、安装Homebrew

Homebrew是Mac下著名的包管理工具,RVM和以后用到xctool都需要用这个来安装,相当于Ubuntu的Apt-get。

安装方法是在命令行中键入

ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"

之后执行环境检查

brew doctor

检查没有错误就可以使用了,如果出现错误,请参考提示进行修正。

确认无误后,可以安装第一个应用curl,一个用来下载的工具。使用命令

brew install curl

2、安装RVM

虽然Mac默认都带有Ruby,但是有些时候使用起来很麻烦(例如必须使用sudo来安装gem)并且只有一个版本,所以我们使用RVM来管理ruby的版本,ruby是自动化测试工具calabash的运行环境,所以必须要有。

安装方法是命令行中键入

\curl -sSL https://get.rvm.io | bash -s stable

过程中可能需要输入sudo密码。

使用淘宝源替换

sed -i .bak 's!cache.ruby-lang.org/pub/ruby!ruby.taobao.org/mirrors/ruby!' $rvm_path/config/db

3、安装Ruby

使用rvm下载ruby2.0版本

rvm install 2.0.0

选用2.0.0版本的ruby,并设置为默认

rvm use 2.0.0 --default

使用淘宝源替换gem源

rvm source --add http://ruby.taobao.org/
rvm source --remove https://rubygems.org/

4、安装Cocoapods

CocoaPods是一个用来帮助我们管理第三方依赖库的工具。它可以解决库与库之间的依赖关系,下载库的源代码,同时通过创建一个Xcode的workspace来将这些第三方库和我们的工程连接起来,供我们开发使用。

通过Gem安装Cocoapods

gem install cocoapods

执行cocoapods的初始化

pod setup

该过程需要到github上拉取specs,速度很慢,可以喝杯咖啡慢慢等

Calabash

Calabash是一款开源的跨平台UI测试工具,目前支持iOS和Android。它使用Cucumber作为测试核心,Cucumber是一个在敏捷团队十分流行的自动化的功能测试工具,它使用接近于自然语言的特性文档进行用例的书写和测试,支持多语言和多平台。

安装Calabash

gem install calabash-cucumber

安装Calabash中文支持包

gem install calabash-cucumber-ios-cn

img

img

新建集成测试的Target

打开工作区,然后选择Jenkins这个工程,打开配置,targets中Jenkins上右键进行复制。

img

如果出现Duplicate iPhone Target对话框,选择Duplicate Only就可以,另外一个选项是复制并转换成iPad程序。

img

Jenkins

Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

XCTool

使用Jenkins进行持续集成之前,还有一个前提,就是编译这个过程需要自动化,中途用xcode手动点的不行,所以我们需要有命令可以一次编译我们的工程,这里我们使用xctool这个工具,是facebook写的一个集成工具,用来编译和打包程序的。

安装方法是使用homebrew,在命令行执行

brew install xctool

安装好在程序目录下测试一下是否可以编译

xctool -workspace integration_test.xcworkspace -scheme integration_test-cal -sdk iphonesimulator7.1 clean build

注意这里的sdk每个人可能不同,要根据本机安装的sdk来写 , 查看的方法是执行命令

xcodebuild -showsdks

如果显示 BUILD SUCCEEDED 那么可以进入下一步了。

img

Jenkins

安装jenkins还是使用brew

brew install jenkins

img

安装好之后,可以通过使用命令行启动

java -jar /usr/local/Cellar/jenkins/1.620/libexec/jenkins.war

img

如果想自动启动,需要先执行以下命令,创建启动项

ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents

可以编辑一下~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist这个文件

open ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

想要让局域网都可以访问,需要把–httpListenAddress=127.0.0.1改成自己的局域网IP

手动启动启动项可以执行

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

之后用浏览器就可以访问http://localhost:8080/来登录jenkins了

img

Resource Reference