最近配置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. POJO和VO的区别

    网上说  POJO对应DAO层中的数据库,POJO重的成员变量对于表中的每个字段. VO  为POJO的分装,与视图层交互.

  2. Apache 配置虚拟主机三种方式

    一.基于IP 1. 假设服务器有个IP地址为192.168.1.10,使用ifconfig在同一个网络接口eth0上绑定3个IP: [root@localhost root]# ifconfig et ...

  3. Matlab中使用脚本和xml文件自动生成bus模块

    帮一个老师写的小工具 在一个大工程中需要很多bus来组织信号,而为了规范接口,需要定义很多BusObject,用Matlab语言手写这些BusObject比较费工夫 所以用xml配置文件来写,也便于更 ...

  4. node基础13:异步流程控制

    1.流程控制 因为在node中大部分的api都是异步的,比如说读取文件,如果采用回调函数的形式,很容易造成地狱回调,代码非常不容易进行维护. 因此,为了解决这个问题,有大神写了async这个中间件.极 ...

  5. 新的一年快开始了,学点新东西吧,从React开始(一)

    ReactJS是Facebook出的前端View框架,好东西啊. 看看它的说明: 仅仅是UI 许多人使用React作为MVC架构的V层. 尽管React并没有假设过你的其余技术栈, 但它仍可以作为一个 ...

  6. ECMAScript 6 Features 中文版

    ECMAScript 6 Features 中文版 如词不达意,欢迎提 PR & issue 采用中英混排的方式进行译制,如不解请查看对应原文 本文档将与原作者的 文档 保持同步更新,欢迎关注 ...

  7. time & datetime

    时间相关的操作,时间有三种表示方式: 时间戳               1970年1月1日之后的秒,即:time.time() 格式化的字符串    2014-11-11 11:11,    即:t ...

  8. 【UOJ #13】【UER #1】跳蚤OS

    http://uoj.ac/problem/13 建立trie树,然后建立go指针, 和AC自动机里的fail指针差不多, 走到一个快捷方式就从go指针走. 注意在trie树上要保留字符'/',不能用 ...

  9. eclipse-将同一个文件分屏显示

    windows-editor-toggle split editor 效果图

  10. PRINCE2第二个原则

    PRINCE2要求项目团队吸取以前的经验教训,在项目生命周期中发现.记录和应对.吸取经验教训,应该记录在整个生命周期中,项目准备期应该回顾以往类似项目,看看是否有经验教训可以应用,如果项目是第一次做, ...