利用jenkins和hockey组织iOS持续交付过程
1. jenkins可以单独作为web应用部署和启动,但建议将其部署在tomcat上,可以方便的管理其他一些web应用,下面讲解如何在Mac设备上安装tomcat
- 到tomcat官网下载适用于Mac设备的tomcat压缩包
- 下载后解压缩并重命名为tomcat,拷贝到/Library目录下
- 在/Library/tomcat/bin下执行startup.sh即可启动tomcat
- 在浏览器中输入localhost:8080,如果能看到tomcat首页,安装就成功了
2. 部署jenkins到tomcat
- 到jenkins官网下载jenkins的war包
- 将war包拷贝到/Library/tomcat/webapps下
- 在/Library/tomcat/bin下执行shutdown.sh关闭tomcat,并再次启动
- 在浏览器中输入http://localhost:8080/jenkins/,如果能看到jenkins配置页面,安装就成功了
- 因为要构建iOS项目,所以要在jenkins的系统管理的管理插件中安装XCode Plugin
3. 配置jenkins工程
- 点击“新Job”创建一个新项目,选择“构建一个自由风格的软件项目”,并命名
- 在配置页面输入以下必填项
- 在源码管理栏目中选择Subversion(根据项目使用的代码管理工具配置),并输入项目的svn地址
- Check-out Strategy可以选择“use 'svn update' as much as possible”
- 在构建触发器栏目中勾选Poll SCM(表示构建项目前更新)
- 将日程表设置为“H * * * *”(表示每小时构建一次)
- 在构建栏目中点击增加构建步骤下拉框,在下拉框中选择XCode
- 输入合法的Target名称,合法的Configuration(Debug|Release|Distribute),勾选Build IPA,并在Keychain path中输入Mac设备的钥匙串路径(通常应为${HOME}/Library/Keychains/login.keychain)
- 点击保存,一个jenkins项目就配置好了,你可以点击左边栏的构建按钮来测试配置是否成功。
4. 安装hockey
1. 在git-hub上下载hockey的服务端代码
2. 在/Library/WebServer/Documents目录下创建项目文件夹,本例中为MyApp
3. 将下载到的源码中得including和public文件夹拷贝至上一步创建的文件夹中
4. 修改config.php中的HOCKEY_INCLUDE_DIR为正确的地址
5. 在public文件夹下创建子文件夹,并以iOS应用的bundle id命名
6. 将对应的provision文件拷贝至该文件夹下
7. 将正确的ipa包拷贝至该文件夹下
8. 在该文件夹下创建manifest.plist文件并编辑如下所示(根据实际项目配置)
9. 在浏览器中输入localhost/MyApp/public/,如果看到应用下载页,安装就成功了,此时只要在开发设备上用浏览器打开该地址(localhost要替换为Mac设备的地址),并安装provision,就可以无线方式在设备上安装测试版本的APP了
5. 自动将jenkins构建的ipa包拷贝到hockey的ipa包所在目录
在jenkins项目的构建栏中增加一个Execute shell步骤,并输入shell命令,把项目构建出的ipa拷贝到hockey的正确目录
6. 到此,当测试人员想安装最新的测试包的时候,就可以先登录jenkins用最新代码构建项目,并打开hockey的APP安装页面在设备上直接安装测试包了
利用jenkins和hockey组织iOS持续交付过程的更多相关文章
- 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境
使用jenkins+calabash+cocoapods搭建ios持续集成环境 持续集成 持续集成到底是什么呢?依据敏捷大师Martin Fowler的定义: 持续集成是一种软件开发实践. 在持续集成 ...
- 持续交付的Mesos与Docker导入篇
变革这个词在当今的数字化时代司空见惯,IT技术每过一段时间就会有一起革新,从WEB2.0.虚拟化.云计算.大数据.微架构.DevOps再到今天的容器Docker与Mesos. Docker的出现方便了 ...
- 利用jenkins和docker实现持续交付
利用jenkins和docker实现持续交付 一.什么是持续交付 让软件产品的产出过程在一个短周期内完成,以保证软件可以稳定.持续的保持在随时可以发布的状况.它的目标在于让软件的构建.测试与发布变得更 ...
- 别让持续交付自动化交付bug
你的连续交付能力用得还好吗,比如频繁发布移动或云应用的特性增强?还是恰好相反,快速发布了带漏洞的版本? - Joel Shore 连续交付能让交付流程跑得更快,但连续交付本身并不能为发布质量打包票.国 ...
- DevOps-如何构建持续交付流水线
引言 DevOps 是一套实践方法,在保证高质量的前提下缩短系统变更从提交到部署至生产环境的时间,其中持续集成和持续交付是 DevOps 里面非常重要的一环.本文讲述了达到自动化持续交付需要做的准备工 ...
- 联想企业网盘:SaaS服务集群化持续交付实践
1 前言 当代信息技术飞速发展,软件和系统的代码规模都变得越来越大,而且组件众多,依赖繁复,每次新版本的发布都仿佛是乘坐一次无座的绿皮车长途夜行,疲惫不堪.软件交付是一个复杂的工程,涉及到软 ...
- 持续交付之软件包管理maven篇
背景 持续交付的我们常见的流程如下,其中有一个环节就是软件包管理 今天我们以maven仓库为示例,如下是Jenkins与CD生态: 持续交付的示例 5 Principles 五个原则 Deliver ...
- 【腾讯Bugly干货分享】Android Patch 方案与持续交付
本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57a31921ac3a1fb613dd40f3 Android 不仅系统版本众多 ...
- 基于Docker持续交付平台建设的实践
导读:中国五矿和阿里巴巴联手打造的钢铁服务专业平台五阿哥,通过集结阿里巴巴在大数据.电商平台和互联网产品技术上的优势,为终端用户带来一站式采购体验.本文是五阿哥运维技术团队针对Docker容器技术在如 ...
随机推荐
- 【转】 VC中TCP实现 异步套接字编程的原理+代码
所谓的异步套接字编程就是 调用了 如下函数 WSAAsyncSelect 设置了 套接字的状态为异步,有关函数我会在下面详细介绍... 异步套接字解决了 套接字编程过程中的堵塞问题 .... ...
- 【转】浅谈对主成分分析(PCA)算法的理解
以前对PCA算法有过一段时间的研究,但没整理成文章,最近项目又打算用到PCA算法,故趁热打铁整理下PCA算法的知识.本文观点旨在抛砖引玉,不是权威,更不能尽信,只是本人的一点体会. 主成分分析(PCA ...
- 【思维题 状压dp】APC001F - XOR Tree
可能算是道中规中矩的套路题吧…… Time limit : 2sec / Memory limit : 256MB Problem Statement You are given a tree wit ...
- VB6 代码编辑页面添加支持滚轮模式
VB6 中的代码编辑页面默认是不支持滚轮模式的,这让在编辑代码时的体验很是不爽. 但在64位win10系统进行加载配置时,可能会出现问题,可用如下方法解决: http://download.micro ...
- mysql中的的按小数位截取
format()函数返回类型是字符串,满三位会加一个逗号. 针对数字类型转换建议使用 convert或者cast函数,用法如下: format(param, 2) (不建议) convert(para ...
- vue-cli webpack配置cdn路径 以及 上线之后的字体文件跨域处理
昨天搞了一下vue项目打包之后静态资源走阿里云cdn. 配置了半天,终于找到了设置的地方 config/index.js 里面设置build 下的 assetsPublicPath 打包的时候便可以添 ...
- php 常用函数集合(持续更新中...)
php 常用函数集合 在php的开发中,巧妙的运用php自带的一些函数,会起到事半功倍的效果,在此,主要记录一些常用的函数 1.time(),microtime()函数 time():获取当前时间戳 ...
- 补之前 如何改变jupyter打开文件的路径
目录 如何改变jupyter打开文件的路径 第一种方法: 第二种方法 第三种方法 如何改变jupyter打开文件的路径 当我们直接打开jupyter时,直接加载的是我们的C盘文件 现在我们想打开其他盘 ...
- org.apache.catalina.webresources.Cache.backgroundProcess The background cache eviction process was unable to free [10] percent of the cache for Context [/filestore] - consider increasing the maximum s
需要耐心啊,太急于求成,希望直接就得到解决方法了...以至于正确方法都已经出现了,我却没有耐心看下去,所以反而又耽误了不少时间.... 项目加载100+张图片,还有一个小的MP4,所以console警 ...
- python——全局变量&局部变量
>>> count = 5 >>> def function(): count = 10 print(10) >>> function() 10 ...