jenkins+mac+fir自动打包

一、简述

jenkins是一个广泛用于持续构建的可视化web工具,持续构建即各种项目的”自动化”编译、打包、分发部署。jenkins可以很好的支持各种语言(比如:java, c#, php等)的项目构建,也完全兼容ant、maven、gradle等多种第三方构建工具,同时跟svn、git能无缝集成,也支持直接与知名源代码托管网站,比如github、bitbucket直接集成。

二、Jenkins的安装

1、Jenkins本身是用java语言开发的,所以安装Jenkins之前,要保证你的电脑有jdk,如果没有,请到如下链接下载:http://rj.baidu.com/soft/detail/25851.html?ald,另外建议git、ant、maven、gradle、groovy等工具也一并安装好,方便与这些构建工具集成。

2、进入Jenkins的官网https://jenkins.io/index.html,然后下载并安装Jenkins。此处有两种安装方法,使用命令行安装和使用jenkins.pkg安装,建议使用后一种,步骤如下:

(1)如下图,点击 Download Jenkins

(2)然后选择 LTS Release->2.7.1.war->Mac OS X

(3)下载完成后,得到 jenkins-2.7.1.pkg 文件,点击直接安装即可,安装过程中,一路continue,到下图时,取消 start at boot as“jenkins”,一般不需要自启动。

(4)安装完成后,会直接跳转到如下界面,如果没有跳转或者跳转失败,可通过执行如下命令 ” open /Applications/Jenkins/jenkins.war ” 进入到该界面:

(5)观察图中的路径,然后打开你的终端,执行如下命令(注意:该命令仅在安装Jenkins的过程中执行才有效;安装成功后,再在终端中执行是无效的):

(6)然后将我们得到的password输入到“Administrator password“中,即可进入如下界面,接着安装一些建议的插件,安装过程中,有的插件可能会安装失败,可以跳过,之后需要对应的插件时,再重新安装即可,具体后面会讲到:

(7)插件安装完成后,可能会卡在如下界面,不会自动跳转,刷新下界面即可:

(8)在刷新后的界面中注册,输入用户名和密码,如下:

(9)注册成功后,点击”Start using Jenkins”

三、Jenkins的使用

1、安装成功后,会进入到如下界面:

2、由于安装过程中,有些插件可能会安装失败,通过如下方式检查所需的插件是否安装成功。

(1)通过“系统管理->管理插件->已安装“,检查如下所需的插件是否安装成功:

<1> Xcode integration

<2> GIT plugin

<3> Post-Build Script Plug-in

<4> GitHub plugin

<5> Email Extension Plugin

特别提醒:本人的项目是使用Git托管在OSChina上的,所以具体需要什么插件要具体考虑,建议最好对照上述步骤(7)中的插件安装结果来检查。

(2)如果有对应的插件没有安装成功,可通过“系统管理->管理插件->可选插件“来安装。安装插件的过程中,如下:

可以看到,插件已经安装成功。但是,打开“系统管理->管理插件->已安装“时,没有找到刚刚安装的插件,这是可以通过重启Jenkins,并重新安装来解决,直到最终我们安装的插件出现在“系统管理->管理插件->已安装“中。

提示:重启Jenkins的方法为:localhost:8080/restart

3、Jenkins的使用

(1)点击新建,创建一个项目

(2)输入项目名称,并选择构建一个自由风格的软件项目,点击下方的OK。

(3)General 中建议写上一些项目描述,其余的不用操作

(4)源码管理,配置如下:

我的项目是使用Git托管在OSChina上的,具体情况具体对待,配置如下:

<1> 选择Git

<2> 首先将托管在OSChina上的项目的URL

取出,并粘贴在图中位置

<3> 通过 “Credentials->Add->Jenkins”来添加OSChina的用户名和密码。

<4> 输入对应的用户名和密码后,并在Credentials中选择该帐号,其余选项不用操作。

(5)构建触发器,有多个选项,具体选择要看你的需求,举例说明:

<1> Build periodically:周期进行项目构建,它不关心源码是否发生变化。

<2> Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。

<3> 我们接下来用Build periodically来演示,如下图,其中的日程表设置为 ” 10 12 * * * “,即每天中午的12点10分,都会自动构建一次:

提示:日程表中所填格式的含义,可以点击右侧的❓来查看,其中有很详细的解释。

(6)构建环境,可直接跳过,不用设置。

(7)构建,设置如下:

1)General build settings

<1> 增加构建步骤,选择 Xcode。

<2> 在下图的Target中,保证该Target和Xcode项目工程中的Target同名。

Xcode项目工程中的Target如下图:

<3> 点击图中右下角的Settings

<4> 建议勾选Clean before build?,并将Configuration设为Release。

<5> 勾选Pack application and build .ipa?,同时为即将输出的ipa文件命名并指定输出路径,如下图:

2)Code signing & OS X keychain options

我在OSChina上托管的项目,已经在Xcode中就配置好了证书,所以只需要执行如下步骤:勾选 Unlock Keychain?,并输入对应的Keychain path 和 Keychain password 即可。

提示:怎样获得Keychain path 和 Keychain password ?

解决方案:回到Jenkins首页,系统管理->系统设置->

Xcode Builder,其中Keychain path会自动生成,Keychain Name 和 Keychain password 填写即可。

3)Advanced Xcode build options

此处有个注意点,即你的项目中使用CocoaPods和没有使用CocoaPods的配置是不同的。

<1> 假如你的项目中使用了CocoaPods,如下图配置,至于每一项是什么含义,点击后面的❓,已经解释的很清楚了,不再赘述:

<2> 假如你的项目中没有使用CocoaPods,应配置如下:

4)Versioning 跳过即可。

(8)构建后操作

小提示:点击各个选项最后的❓时,都会有相应选项的详细说明。

1)构建后,上传到fir.im

由于构建后,要上传到http://fir.im/apps,而且上传有两种常用方法,建议使用第一种。

第一种方法:使用插件fir-plugin-0629.hpi,直接点击下载即可。配置如下:

<1> 回到Jenkins首页,系统管理->管理插件->高级,通过下图将你下载的插件上传:

<2> 上传之后,在 “可选插件” 中找到它,然后安装。

<3> 安装成功后,如下图,选择 “增加构建后操作步骤”,选择 “Upload to fir.im”。

<4> 在Upload to fir.im 中,输入你的fir.im Token。

提示:fir.im Token 的获得方式:首先注册一个 fir.im 帐号,然后如下图,找到你的 fir.im Token。

如下图,即 fir.im Token,可重新生成。

<5> 其余选项略过。

第二种方法:使用命令行的形式配置并上传,简述如下:

<1> 选择 “增加构建后操作步骤”

<2> 选择 “Execute a set of scripts”

<3> 选择 “Add build step”

<4> 选择 “Execute shell”

<5> 在下图中输入:fir p${WORKSPACE}/build/TestJenkins.ipa -T#API Token#

提示1:其中${WORKSPACE}/build/为 .ipa 的输出路径,#API Token#为fir.im的API Token。

提示2:在使用该命令前请先确认安装fir-cli,安装命令如下:

sudo gem install fir-cli –no-ri –no-rdoc

上面的命令来自 fir.im 的工具 fir-cli,这是他们的官方使用说明:官方工具 fir-cli 使用说明。

2)构建后,自动发送邮件提醒

<1> Jenkins 自带一个邮件的通知的功能,但是自带的邮件通知功能,有点简单,不能自定义信息,所以我们安装邮件插件Email Extension Plugin。

<2> 首先确保在 “系统管理->插件管理->已安装 “中,已经安装了Email Extension Plugin,如果没有,请安装。

<3> 通过 “系统管理->系统设置->Extended E-mail Notification” 配置邮件服务器,此处以163邮箱为例,具体配置如下图,并指定 “Default Content Type”:

<4> 点击上图中的 “高级”,可以进一步设置,如下图,即指定一个可用的163邮箱,用来发送邮件,输入正确的邮箱和密码”:

同时指定 ” Default Recipients” 和 “Default Content”,具体如下图,其中 “Default Content” 可根据实际需求来调整。

<5> 在 “系统管理->系统设置->Jenkins Location” 中,将上述163邮箱作为 “系统管理员邮件地址”。

提示:邮箱(以163邮箱为例),一般都是禁止第三方邮件客户端来使用163邮箱来发邮件的,可以通过以下方式解决:

首先,进入163邮箱,找到设置;

然后,如下图,选择 “POP3/SMTP/IMAP”

最后,如下图,勾选 “POP3/SMTP服务” 和 “IMAP/SMTP服务”,并通过短信验证的方式,实现使用授权码登录第三方邮件客户端。(此处各种邮箱的设置不一定相同,但大同小异)

<6> 回到项目中的 “构建后操作”处,继续进行设置,如下图:

其中的 “Project Recipient List” 是收件人列表,可根据实际需要添加,各个邮箱之间以逗号分隔即可(也可使用cc: or bcc: 的形式,点击右侧❓可查看详情)。其余各项按图中配置即可,如有特殊需要,再针对性设置。

<7> 如果想获得输出log,可通过下图中的 “Attach Build Log” 来设置。

<8> 点击上图中的 “Advanced Settings”,来进一步设置触发方式。如下图,我选择了当构建成功和失败时,都发送邮件通知指定对象。

<9> 在各种具体的触发方式中,同样可以做一些具体设置。例如,想在不同的触发方式下,发送邮件给不同的人,那么就可以通过该功能实现。

例如,在触发成功的情况下,通知下面三人,可如下设置:

在触发失败的情况下,仅通知特定一人,可如下设置:

(9)上述步骤都完成后,点击 “Apply”->保存。

(10)当你在(5)中设置的触发时间点到了时,就会自动构建项目,并打包ipa上传。

(11)上传后,可登录http://fir.im/apps去查看,如果上传成功,显示如下,可打开预览查看具体的更新时间:

(12)也可打开设定的邮箱,去验证是否有收到邮件,一般邮件内容如下,可点击其中的 ” ipa下载地址” 去下载该APP:

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

推荐阅读更多精彩内容