程序猿,项目持续集成的这些技能你知道吗?
liuian 2025-08-05 19:29 24 浏览
持续集成是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。
一、为什么使用持续集成
1、减少重复繁琐的打包过程
2、任何时间、任何地点测试都可以获取到新包
3、增强项目的可见性
做持续集成对我们开发者来说是一件一劳永益的事情,对于发包这个问题,相信是每个程序员GG心中挥之不去的痛,而测试MM们也在每次马上就发出来的承诺中得出一个结论就是“你是个大骗子”。
所以每次被测试MM追着要包,产品经理说给我装一个新包瞧瞧呗,后台GG说给我装一个老版本调试一下啊。。。这个时候我们的内心是奔溃的,然后我们不得不暂停手下的工作,切换到某个版本,Archive。。。其实对于打包发包这种事情根本就不是开发需要做的,因为这是一个简单没有技术含量且浪费时间的工作。时间就是金钱,所以为了不再浪费我们开发宝贵的时间,自动化构建这件事情必须得提上日程了。
二、常见的持续集成工具
Jenkins CI
Travis CI
Hudson CI
Circle CI
持续集成的工具有很多,不过最好用的还是Jenkins,Travis能够对Github上的开源项目做很好的集成,考虑到Jenkins的稳定性,我们还是选择Jenkins来开始我的iOS持续集成。
三、工程结构
本事例项目工程代码存放在coding,使用Cocoapods管理第三方库,存在在coding上的项目目录结构如下:
四、目录结构图
由于cocoapods文件过多,所以没有必要上传到git仓库中,只用将Podfile文件传上去即可。
Jenkins的安装
由于Jenkins是Java开发的,所以首先我们需要先安装好Java环境,然后去Jenkins的官网下载最新的war包。下载完成后,打开终端,进入到war包所在目录,执行以下命令:
| 1 | java -jar jenkins.war --httpPort=8888 |
httpPort指的就是Jenkins所使用的http端口,这里指定8888,可根据具体情况来修改。待Jenkins启动后,在浏览器页面输入以下地址:
| 1 | http://localhost:8888 |
这样就可以打开Jenkins页面了。
--httpPort=8888可以不输入,不输入默认端口号为8080
打开链接后,先要设置一些安装信息,这里就不再啰嗦,因为十分简单,接下来我们来看安装成功后的相关配置。
五、Jenkins的配置
到Jenkins页面,Jenkins-系统管理-插件管理-可选插件中,安装一下插件:
GIT plugin
Git client plugin
Xcode integration
CocoaPods Jenkins Integration
(一)、Git私有仓库配置
按照如下方式添加SSH,因为项目代码是存放在coding上的所以,这个关于生成SSH可以以Coding为例:
https://coding.net/help/doc/git/ssh-key.html
SSH 秘钥配置
(二)、创建Job
这里的步骤我准备全部一图片的形式展示出来。
点击“Jenkins”-“新建”:
创建Job
(三)、源码管理
选择刚刚创建的项目,点击“配置”:
设置源码地址
这里最好使用SSH,这个工程是私有项目,如果出现错误肯定是由你自己配置错误造成的。
(四)、构建步骤设置
选择构建步骤,记得添加Xcode插件,选择添加Execute Shell和Xcode,有先后顺序。
添加构建步骤
设置Execute Shell
Execute Shell
(五)、Xcode General build settings
General build settings
Code signing & OS X keychain options
Keychain path填写${HOME}
/Library/Keychains/login.keychain
Keychain password对应的密码可以在钥匙串中查看:
Code signing & OS X keychain password查看方法
(六)、Advanced Xcode build options
Advanced Xcode build options
六、fir.im Jenkins 插件安装
上面的构建配置好了后,如果顺利的话就已经能够编译出ipa文件了,但是编译出来的ipa只能放在本地,不能给大家安装,所以编译完成后我们还需要将ipa文件上传到fir.im。
fir插件的安装方法详情请移步:《fir.im Jenkins 插件使用方法》
七、构建后上传到fir.im
安装好fir插件后在“构建后操作”中点击“添加构建后操作步骤”,可以看到:
添加构建后上传fir步骤
点击“upload to fir.im”,然后会出现如下界面:
设置fir.im的Token
Fir.im的Token获取地址:
http://fir.im/apps/apitoken
八、手动构建
选中你要构建的项目,然后点击“立即构建”
手动构建
选择正在构建的Build,然后点击“Console Output”可以查看build过程中打印的一些信息,如果遇到什么报错信息都可以在这里面查看。
控制台输出
九、自动构建设置
构建触发器有一下几种触发方式:
触发远程构建 (例如,使用脚本)
Build after other projects are built
Build periodically
Poll SCM
这里我只用到了Build periodically
Build periodically触发自动构建
十、总结
为了搭建这个Jenkins我看了很多博客,不过大多比较难懂,一直都没有成功,经过各种尝试后最终搭建成功,我在此将整个过程记录下来,以来是对自己知识的一个积累,二来如果能够给将要搭建Jenkins的iOS持续集成的朋友们一点帮助也是极好的。
参考文档:一步一步构建iOS持续集成:Jenkins+GitLab+蒲公英+FTP使用 Xcodebuild + Jenkins + Apache 做 iOS 持续集成
文/极数软件 - Jvaeyhcd
未经授权,请勿转载。
相关推荐
- 手机一键还原(iphone手机一键还原)
-
如果你希望恢复华为手机上的一键锁屏功能,你可以按照以下步骤进行操作:1.进入设置:在你的华为手机上,打开设置应用程序。你可以在应用抽屉中找到该应用,通常是一个齿轮或者包含「设置」字样的图标。2.寻...
- 系统修复u盘(优盘系统修复)
-
1、我们在网络中,找到修复软件U盘烧录修复(PortFreeProductionProgram)v3.27,记得不需要太高级的版本,这个比较好用。 2、打开软件,出现的页面是,初始状态下,看到...
- sony笔记本u盘启动快捷键(索尼笔记本u盘快速启动键)
-
索尼笔记本按assist按键快捷键进入u盘启动索尼笔记本进入U盘启动的步骤:1、索尼笔记本位于键盘右上角有一个ASSIST的按键,首先按这个键就可以进入vaiocare的设置。2、通过按ASSIST...
- win7旗舰版密匙(正版win7旗舰版密钥)
-
一、Windows7旗舰版激活密钥零售版:Windows7UltimateRetail永久序列号【尝试联网激活,如果不能激活,可电话激活】[Key]:RHTBY-VWY6D-QJRJ9-JGQ...
- 一键ghost备份还原工具绿色版硬盘版
-
可以的。1.打开GHOST软件,接受许可协议,点击OK。2.从图像中选择Local→Partition→,3.选择镜像文件所在的分区,找到镜像文件(winxp.gho),然后单击enter。4.显示镜...
- 延缓写入失败电脑卡死(电脑显示延缓写入失败)
-
您好,请您检查下是否有人下载、网络电影等极大占据带宽的行为还有可能是您的地区网络和游戏服务器之间的网络衔接不佳,您可以使用一款网游加速器来解决希望对您有所帮助
- 手机变电脑桌面免费版(手机秒变电脑桌面下载破解版免费)
-
方法一、无需特别硬件,PC开热点手机连上即可投影,支持用PC的键鼠控制设备,如果是用来演示的话,这是解决方案之一。方法二、类似投影仪的原理这个需要设备制造商提供例如HDMI的输出支持,Android代...
- 惠普打印机墨盒怎么加墨水(惠普2622打印机怎么换墨盒)
-
惠普墨盒加墨水的步骤如下:确保墨盒已加满,取下墨盒。准备一张干净的纸,将墨盒放在上面。注意每个墨盒的顶上贴着一张胶纸,一般胶纸下面就会有注入墨水的孔。小心加墨一次挤入不能太多。如果打印墨色浅,可以在设...
- tplink无线路由器桥接教程(tplink路由器如何进行无线桥接)
-
步骤1:将扩展路由器插电源,不要插网线。步骤2:看易展路由器底部标签的SSID,打开手机的wifi设置,搜索这个wifi信号步骤3:链接上易展路由器的wifi信号步骤4:进入设置界面,部分手机可以自动...
- 怎样还原电脑原来的系统(咋样还原电脑系统)
-
首先,我们必须确保打开系统还原,否则无法恢复操作系统。在确保已打开的情况下,单击菜单,选择“附件”,点系统工具,并还原系统。接下来,打开系统还原,找到系统还原点,找到最佳适合系统还原的时间点,但确保系...
- 惠普服务中心电话(孚惠教育退费服务中心电话)
-
百脑汇里有两家鸿鹄的店面,电话分别是85133339/88609104
- win7装xp怎么装系统(windows7装xp)
-
Windows7和WindowsXP是两个不同的操作系统。但是安装的方法是相同的。第1种就是用安装盘。放入光驱以后。设置启动项以光驱优先,重启电脑,安装光盘,自动引导,按照提示一步一步的就可以安装...
- 磁盘不相邻怎么扩展卷(磁盘分区不相邻)
-
要扩展不相邻的磁盘,可以使用磁盘扩展技术,如磁盘阵列(RD)或逻辑卷管理(LVM)。RAID可以将多个磁盘组合成一个逻辑卷,提供更大的存储空间。LVM允许将多个物理卷组合成一个逻辑卷组,并在其中创建逻...
- 一周热门
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
