最近配置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应用配置过程中遇到的问题的更多相关文章

  1. Jenkins自动化构建python nose测试

    [本文出自天外归云的博客园] 简介 通过Jenkins自动化构建python nose测试分两步: 1. 创建节点(节点就是执行自动化测试的机器): 2. 创建任务并绑定节点(用指定的机器来跑我们创建 ...

  2. Jenkins自动化构建系列:01敏捷开发、自动化构建与持续集成

    <SVN与TortoiseSVN实战系列>已写完,今天新开一个<Jenkins自动化构建系列>,上周听了Bob Jiang老师的Agile1001公开课,一直想写个总结,这篇关 ...

  3. CAS SSO:汇集配置过程中的错误解决方法

    本教程为gevin.me原创文章,转载请注明: CAS SSO:配置过程中的错误解决方法 | Gevin’s Blog 本文将收集在配置CAS SSO遇到的所有错误,希望对大家有帮助,也方便下次搭建的 ...

  4. 菜鸟帮你跳过openstack配置过程中的坑

    一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...

  5. 菜鸟帮你跳过openstack配置过程中的坑[文末新添加福利]

    一:前言 对于一个以前做java全栈工程师而言,而且没学过Linux,很少用虚拟机(还是在大学的时候简单的用过),去配置openstack我想我入的坑肯定比有基础的一定要多,躺在每个坑中徘徊思索的时间 ...

  6. Redis配置过程中的问题

    记录一下配置过程中的坑~~ 当Redis在服务器上安装完成后,get.set没有问题了,接下来在程序中使用看看... 首先 在配置文件redis.conf中,默认的bind 接口是127.0.0.1, ...

  7. ESXi与物理交换机静态链路聚合配置过程中的小陷阱

    作者:陆斌文章来自微信公众号:平台人生 内容简介:ESXi与物理交换机之间配置静态链路聚合时,因为静态链路聚合的特点,在进行down网卡和从虚拟交换机移除网卡的操作时,可能会无法完成故障流量切换,影响 ...

  8. Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建

    Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建 一.Jenkins 进入项目---->Configure 1.设置项目代码从git中拉取 2.设置钩子程序 二.git ...

  9. springmvc配置过程中遇到的一些问题总结

    springmvc配置过程中遇到的一些问题总结 1.配置tomcat过程中的错误: 2.配置web.xml中DispatchServlet报红(配置好已有依赖条件下) 解决的办法: 因为新添加依赖,m ...

随机推荐

  1. MBTI-性格测试

  2. POJ2505 A multiplication game[博弈论]

    A multiplication game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6028   Accepted:  ...

  3. Java并发编程实例(synchronized)

    此处用一个小程序来说明一下,逻辑是一个计数器(int i):主要的逻辑功能是,如果同步监视了资源i,则不输出i的值,但如果没有添加关键字synchronized,因为是两个线程并发执行,所以会输出i的 ...

  4. android:exported 属性详解

    属性详解 标签: android 2015-06-11 17:47 27940人阅读 评论(7) 收藏 举报 分类: Android(95) 项目点滴(25) 昨天在用360扫描应用漏洞时,扫描结果, ...

  5. Grumpy: Go 上运行 Python!

    Google 运行数百万行Python代码用于驱动youtube.com和YouTube API的前端服务器,每秒可以提供数百万的请求! YouTube的前端运行在CPython 2.7上,所以我们投 ...

  6. php 单双引号的区别

    在PHP中,字符串的定义可以使用英文单引号' ',也可以使用英文双引号" ". 但是必须使用同一种单或双引号来定义字符串,如:'Hello World"和"He ...

  7. 备忘:maven 中指定版本

    <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...

  8. CloudSim介绍和使用

    本文主要介绍一下我在使用CloudSim时翻译.整理和理解的一些信息,以及我的使用经验,希望能对有需要的朋友们有所帮助~1.我翻译和理解的一些信息:    2009年4月8日,澳大利亚墨尔本大学的网格 ...

  9. sublime编辑器插件

    sublime---插件 http://www.cnblogs.com/dudumao/p/4054086.html sublime--- Emmet插件  使用方法 http://docs.emme ...

  10. python使用uuid库生成唯一id

    概述: UUID是128位的全局唯一标识符,通常由32字节的字符串表示. 它可以保证时间和空间的唯一性,也称为GUID,全称为: UUID -- Universally Unique IDentifi ...