使用Jenkins搭建iOS开发的CI服务器
2015-12-23 15:41
513 查看
简介
持续集成CI(continuous integration)是一种可以增加项目可见性,降低项目失败风险的开发实践。iOS开发中CI的选择有很多,比如可以使用Apple提供的Bots来完成自动化构建和单元测试,其优点就是和Xcode深度集成,只需几步配置就可以完成,缺点就是不够灵活,可定制化程度不高。这篇文章主要讲解如何使用开源社区的一个CI工具Jenkins来搭建iOS开发的CI环境。如果是搭建单独CI服务器的话,就需要一台单独的mac机器了。
下载并运行
打开Jenkins的官网,在页面的右侧,点击下载最新版本的Jenkins的war包。下载完成后,打开terminal,进入到war包所在目录,执行命令:
java -jar jenkins.war --httpPort=8888
httpPort指定的就是Jenkins所使用的http端口,这里指定8888,可根据具体情况修改。待Jenkins启动后,打开浏览器输入地址:
http://localhost:8888/
便可以打开Jenkins的管理界面了。
Jenkins配置
安装git插件
Jenkins默认没有安装git插件,需要手动选择安装。进入Jenkins的管理界面,依次选择Manage Jenkins->Manage Plugins,选中“Available”选项,在页面的右上角的“Filter”中输入git过滤条件,在所有列出的结果中,选中“Git Client Plugin”和“Git Server Plugin”这两个选项,然后点击按钮“Download now and install after restart”。等待插件下载安装成功后,重启Jenkins。如下图所示:
需要安装的插件不止这两个,还有git plugin,Credentials
Plugin(git用户和密码)”和“Keychains
and Provisioning Profiles Management(iOS证书管理,也可以不用,在jenkins服务器上手动安装,然后在xconfig文件中指定证书)”
xcode配置文件的配置范本:
CODE_SIGN_IDENTITY[sdk=*] =iPhone Developer: YINGCHEN ZHANG (7QRJQNU276)
PROVISIONING_PROFILE[sdk=*] = 906d2ae1-4d2d-4a45-84d3-256e89738c08
脚本解锁钥匙串:security unlock-keychain -p YS12101210 ~/Library/Keychains/login.keychain
如果每次签名都需要输入用户名和密码,可能是因为密钥权限问题,双击设置问所有人都可以访问就可以了。
编译脚本:
cd $WORKSPACE
cd iosclnt/libHLSStreamingEngine
pwd
xcodebuild clean -configuration Release
xcodebuild build -configuration Release
cd $WORKSPACE
cd iosclnt/Library/SocketRocket
pwd
xcodebuild clean -scheme SocketRocket -configuration Release -sdk iphoneos
xcodebuild build -scheme SocketRocket -configuration Release -sdk iphoneos
cd $WORKSPACE
cd iosclnt/Library/SDWebImage
pwd
xcodebuild clean -scheme SDWebImage -configuration Release -sdk iphoneos
xcodebuild build -scheme SDWebImage -configuration Release -sdk iphoneos
cd $WORKSPACE
cd iosclnt/vcloud
pwd
xcodebuild clean -configuration Release -xcconfig ./xcconfig/Release-vcloud.xcconfig
xcodebuild build -configuration Release -xcconfig ./xcconfig/Release-vcloud.xcconfig
打包脚本:
/usr/bin/xcrun -sdk iphoneos PackageApplication -v $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.app
-o $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.ipa
cd /Volumes/AutomationData/builds_web/BUILDS/ios/release/
mkdir -p $BUILD_NUMBER
//输出与移动目录脚本:
cd $BUILD_NUMBER
cp $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.ipa ./
cp -r $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.app.dSYM ./
cp -r $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.app ./
cd /Volumes/AutomationData/builds_web/BUILDS/ios/latest/release/
cp -f $WORKSPACE/iosclnt/vcloud/build/Release-iphoneos/vcloud.ipa ./
相关文章推荐
- ios让两个controller的navigationbar颜色不同
- 个人对mvc mvvm的理解---代码结构 IOS
- iOS中KVC与KVO的区别
- IOS ARC内存管理总结
- IOS XCode无法选择设备调试,设备显示
- iOS获取控制器里面的控件
- <iOS>自动布局
- iOS画图时 自己做的一小笔记
- IOS支付宝集成一系列问题
- Habber - IOS XMPP 客户端 教程 (四)聊天界面制作
- Xcode各版本官方下载, Mac和IOS及Xcode版本历史
- iO7以上用CIFilter生成二维码
- <iOS>ARC下需要注意的内存管理
- iOS自适应label高度和宽度
- iOS中GCD的使用小结
- IOS 上拉加载,下拉刷新,本人使用MJRefresh
- iOS判断字符串是否包含空格
- iOS中的事件传递和响应者链条
- iOS应用程序生命周期(前后台切换,应用的各种状态)详解
- IOS 解决真机调试找不到设备问题