jenkins自动化构建iOS应用配置过程中遇到的问题
最近配置jenkins来自动构建iOS应用,期间遇上不少问题。在这里分享给大家,也给自己留个底,方便下次解决问题。
首先说明下基本情况,我们因为部署jenkins的机器不是Mac,所以不能安装Xcode插件,我不知道这个插件能给我们带来多少便捷。最终方案就是让jenkins调用另一台用于打包的机器,让打包机执行已经写好的shell打包指令。
简单的画了个图,大概的原理就是这样的。
既然打包,肯定是要配置一些参数的,如何获取代码仓库当前的分支,其实很简单,这么易见的问题自然早就帮我们做好了
这张图展示的是获取分支,其中name:TEST_BRANCH这个参数可以随意起名字,这个也是会在最后的脚本构建中,作为参数传来。有几个配置我也不是很清楚,这么配就可以。
你可以通过类似的方式添加打包脚本所需要的参数,当你添加好之后,在点击构建时,可以看到出现了一个选择框
参数配置好后,就要添加执行的脚本
我这里就是一些git命令,第一行是远程连接来的认证,貌似在有些时候并不需要。在拉到代码之后,执行了大包命令。这里被我遮住了,给大家一个git仓库地址,基本可以满足打包的需求了,文件上传等脚本俱全。感谢作者。具体使用请看reademe。
https://github.com/webfrogs/xcode_shell
还可以添加一些构建后的操作,比如构建失败发邮件等等,可以打架自己摸索。
接下来说下遇到的问题,如果你配置不顺利的话,看看下面是否有类似的问题。
这是第一个
rsa的公钥有密码,导致jenkins通过ssh调用时,没有权限。
上图是在jenkins打包日志中获取的。
我的解决方案是建立在代码是存放在git类型的远端仓库,且使用ssh认证的方式下的。我删掉了老的rsa的公私钥,重新生成了一份公私钥,生成指令执行后,会让你输入公钥的密码,这个时候,你只需要按回车就可以生成没有密码的公钥。然后将公钥添加的git仓库中,这样就解决了这个问题。
这是第二个
jenkins连接不了打包机器,将mac的公钥添加到jenkins的免密码登陆中。(可能会在更新rsa的key时出现)
这是第三个
获取不到代码的另一个问题,git仓库需要给jenkins所使用的用户下载代码的权限。(这个问题我也不是很明白为什么,但是不加就是不行)
jenkins自动化构建iOS应用配置过程中遇到的问题的更多相关文章
- Jenkins自动化构建python nose测试
[本文出自天外归云的博客园] 简介 通过Jenkins自动化构建python nose测试分两步: 1. 创建节点(节点就是执行自动化测试的机器): 2. 创建任务并绑定节点(用指定的机器来跑我们创建 ...
- Jenkins自动化构建系列:01敏捷开发、自动化构建与持续集成
<SVN与TortoiseSVN实战系列>已写完,今天新开一个<Jenkins自动化构建系列>,上周听了Bob Jiang老师的Agile1001公开课,一直想写个总结,这篇关 ...
- CAS SSO:汇集配置过程中的错误解决方法
本教程为gevin.me原创文章,转载请注明: CAS SSO:配置过程中的错误解决方法 | Gevin’s Blog 本文将收集在配置CAS SSO遇到的所有错误,希望对大家有帮助,也方便下次搭建的 ...
- 菜鸟帮你跳过openstack配置过程中的坑
一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...
- 菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]
一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...
- Redis配置过程中的问题
记录一下配置过程中的坑~~ 当Redis在服务器上安装完成后,get.set没有问题了,接下来在程序中使用看看... 首先 在配置文件redis.conf中,默认的bind 接口是127.0.0.1, ...
- ESXi与物理交换机静态链路聚合配置过程中的小陷阱
作者:陆斌文章来自微信公众号:平台人生 内容简介:ESXi与物理交换机之间配置静态链路聚合时,因为静态链路聚合的特点,在进行down网卡和从虚拟交换机移除网卡的操作时,可能会无法完成故障流量切换,影响 ...
- Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建
Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建 一.Jenkins 进入项目---->Configure 1.设置项目代码从git中拉取 2.设置钩子程序 二.git ...
- springmvc配置过程中遇到的一些问题总结
springmvc配置过程中遇到的一些问题总结 1.配置tomcat过程中的错误: 2.配置web.xml中DispatchServlet报红(配置好已有依赖条件下) 解决的办法: 因为新添加依赖,m ...
随机推荐
- MBTI-性格测试
- POJ2505 A multiplication game[博弈论]
A multiplication game Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6028 Accepted: ...
- Java并发编程实例(synchronized)
此处用一个小程序来说明一下,逻辑是一个计数器(int i):主要的逻辑功能是,如果同步监视了资源i,则不输出i的值,但如果没有添加关键字synchronized,因为是两个线程并发执行,所以会输出i的 ...
- android:exported 属性详解
属性详解 标签: android 2015-06-11 17:47 27940人阅读 评论(7) 收藏 举报 分类: Android(95) 项目点滴(25) 昨天在用360扫描应用漏洞时,扫描结果, ...
- Grumpy: Go 上运行 Python!
Google 运行数百万行Python代码用于驱动youtube.com和YouTube API的前端服务器,每秒可以提供数百万的请求! YouTube的前端运行在CPython 2.7上,所以我们投 ...
- php 单双引号的区别
在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" ". 但是必须使用同一种单或双引号来定义字符串,如:'Hello World"和"He ...
- 备忘:maven 中指定版本
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- CloudSim介绍和使用
本文主要介绍一下我在使用CloudSim时翻译.整理和理解的一些信息,以及我的使用经验,希望能对有需要的朋友们有所帮助~1.我翻译和理解的一些信息: 2009年4月8日,澳大利亚墨尔本大学的网格 ...
- sublime编辑器插件
sublime---插件 http://www.cnblogs.com/dudumao/p/4054086.html sublime--- Emmet插件 使用方法 http://docs.emme ...
- python使用uuid库生成唯一id
概述: UUID是128位的全局唯一标识符,通常由32字节的字符串表示. 它可以保证时间和空间的唯一性,也称为GUID,全称为: UUID -- Universally Unique IDentifi ...