Jenkins实现svn代码管理下IOS自动化打包+发布fir实践

前几天有个朋友给我分享了篇使用Jenkins实现自动打包发布的文章,我一看这不就是前东家用的那一套么,刚好我之前一篇总结“ios自动化构建”实现了shell脚本打包,可以将两者合起来一起用,好玩~~~废话少说,奔主题~

工欲善其事必先利其器,先准备好需要用到的工具:JenkinsJDK(Jenkins用到)、fir命令行工具。另外,在这里我用Jenkins分别尝试了Xcode打包(3.1)shell脚本打包(3.2) 两种不同方式。

注. fir命令行工具可直接运行:sudo gem install fir-cli --no-ri --no-rdoc   安装。

1、Jenkins的安装

打开安装包后显示以下界面,选择继续

1

选择自定义,进入下一步

2

取消“Start at boot as "jenkins",点击安装就可以了

3

安装完后可以点击/Applications/Jenkins/jenkins.war启动jenkins

或直接在在终端中输入命令行打开Jenkins:

open /Applications/Jenkins/jenkins.war

这时候如果还没安装JDK的话,可能会弹出下面这个窗口提示你安装

点击”等多信息“会跳到相应下载页面,下载安装完JDK重新启动Jenkins就能运行了。

2、配置Jenkins

启动Jenkins用浏览器打开: http://localhost:8080/

就能进入Jenkins配置页面了,如果端口冲突可以通过下面命令修改端口

defaults write /Library/Preferences/org.jenkins-ci httpPort 7070

其中红色框框部分是我已经建立好的两个项目,第一次进入Jenkins的时候是没有的。

安装插件:

第一次进入Jenkins需要安装好下面几个插件:Xcode integration、Post-Build Script Plug-in。如果你使用的是git管理的代码,还需要再装下:GIT plugin和GitHub plugin。

1

选择“系统管理” -> “管理插件” -> “可选插件”,在过滤框中输入插件名称,勾选后点击“直接安装”就可以了

2

3、创建、配置项目

新建 -> 输入项目名称 -> 选择“构建一个自由风格的软件项目” -> 点击ok就行了。

这里有个点需要注意,项目名称最好不要包含空格或特殊符号,不然后面使用shell脚本进行打包的时候会给自己挖坑。



创建好项目之后点击进入配置

2


到这里一个项目算创建好了,先剧透下Jenkins从svn上拉下来的代码文件目录结构长啥样:

3

其中workspace文件夹就是Jenkins环境变量“${WORKSPACE}”对应的目录,可以在终端输入命令:

open ~/.jenkins/jobs/

打开

3.1 配置使用Xcode自动打包发布fir

第一个创建的项目叫“我去炒股1.2.0”,用来配置xcode自动打包发布。

1

选择svn填好路径,第一次配置会要求输入账户密码,以后就会自动记住了。

Check-out Strategy最好选择每次update最新代码前都revert下,而不是“Use 'svn update' as much as possible” ,因为我使用的是cocoa pod管理的第三方,每次打包运行pod install会修改了工程配置文件,如果下次自动打包前不先revert再update的话会出现冲突。

2

因为我使用的是cocoa pod管理的第三方,打包前先运行

pod install --verbose --no-repo-update

安装下第三方库

3


4

其中“${HOME}/Library/Keychains/login.keychain”是钥匙串路径,这是固定的。

5
6

下面添加的是打包成功后让Jenkins继续执行的操作,我们的目的是使用fir命令行把生成ipa包发布到fir.im上去

7

执行fir命令,其中fbea410df57d9d7536f43c74f8700ff2是我的fir账号生成的api token。

8

到这一步,Jenkins配置使用Xcode自动打包发布fir已经全部完成了,切回主页面

9

点击1会进入到状态2,标明正在打包。或如下图,进入项目里面选择“立即构建”,也会开始打包。编号50代表这是我第50次尝试构建打包。

10

直到动画结束,表示打包完成

11

可是如果编号前面的小圆圈是红的,则说明打包失败,可以点击进去查看失败log。

12

打开fir.im登录到我的账户,进去,可以看到未打包成功前是这样

13

打包成功后,刷新下页面就可以看到Jennkins已经帮我把测试包自动上传上去了

14


3.2 Jenkins配置使用shell脚本打包发布fir

使用shell脚本打包需要配置的东西比xcode要少,麻烦的就是需要自己写个shell脚本。为了尝试,我又创建了个“我去炒股1.2._script”工程。

1

svn的配置跟3.1保持一致

2

唯一的区别就是,打包、签名、上传fir等粗重或我都交给shell脚本来干了:

3

从Jenkins拉下来的代码目录来看,我的shell脚本在工作目录下的YTStockTradin文件夹下面。

4

好人做到底,附上我写的shell脚本:其中打不同包只需要修改“PROFILE_NAME”指定不同概要配置文件即可。

5

最后,吐槽下前面提到的“项目名称不要使用空格或特殊符号”的问题,我刚开始命名的是“我去炒股 1.2.0”,中间带了个空格,结果发现在Jenkins的工作空间里shell脚本只能无法定位到当前,用“echo | pwd”命令打印当前目录结果如下:

6

说明shell脚本只能定位到当前用户目录而已,这就郁闷了。。。

我又把脚本copy一份放到desktop,echo | pwd 运行打印出来的路径完全正确,真是日了狗~~~

shell命令我本身就不熟,查了很久,问了几个同事都没找到原因,最后还是坪哥给力,一下子就找到问题所在:路径名称不规范。

改了项目名之后就ok了,运行结果参照 3.1 。


特别感谢:苏波波和坪哥给了我不少指导和帮助 !!


参考:

iOS 下如何自动化打包 App

Jenkins+GitHub+Xcode+fir搭了一个持续集成环境

*jenkins*iOS项目持续集成(SVN+Cocoapods+Workspace)实战扩展(修改版)

Jenkins(二) 安装、新建Jobs与删除及SVN配置

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,175评论 5 466
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,674评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,151评论 0 328
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,597评论 1 269
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,505评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 47,969评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,455评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,118评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,227评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,213评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,214评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,928评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,512评论 3 302
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,616评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,848评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,228评论 2 344
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,772评论 2 339

推荐阅读更多精彩内容