文档章节

iOS 自动构建套件 - flow.ci + fir.im + Coding

风起云飞fir_im
 风起云飞fir_im
发布于 2017/05/08 12:11
字数 1115
阅读 22
收藏 0
点赞 0
评论 0

编者按:本文转载自 flow.ci 用户 GitHub@mzying2013 的实践分享,原文链接这里


前言

相信很多最开始接触自动构建都是从 Jenkins 开始的。都是纯手工搭建,本地代码创库也是 Gitblit 搭建的。基本上每次换工作,都需要重新搭建一遍,实在心累。期间踩坑无数,暂且不表。接触到 flow.ci 还是因为之前一直在用他们的 APP 发布平台服务 fir.im 。本文是我对 flow.ci 的一些体验,期望可以帮助 iOSer 快速上手。

准备工作

  1. 项目的 Git 仓库(什么?还在用SVN!恨铁不成钢的表情,SVN转Git可以看这里

  2. 注册 Coding 账号,创建Coding私有创库(免费的哦,如果之前有Git仓库,也可以新建一个专门用于自动构建的分支)。

  3. 注册 flow.ci 账号(不收费,不过要手机号码接收短信验证码)

  4. 注册 fir.im 账号,生成并获取 API Token (不收费,不过要手机号码接收短信验证码)

  5. 绑定 Coding 账户。在 dashboard 页面点击用户头像 - Git仓库创建项目都可以绑定 Coding 账户。(GitHub,Bitbucket,Coding,GitLab,码云都是支持的)

  6. 证书和描述文件。引用一下 flow.ci 自己的详细导出证书和描述文件教程

(企业证书请忽略)切记在描述文件里面添加要安装设备的 UDID,否则会出现从 fir.im 下载的时候,提示“无法安装该应用”。到时候需要重新在描述文件添加 UDID,然后重新上传描述文件并再次构建。

开工

项目配置

  1. flow.cidashboard 页面直接点击创建项目

  2. 选择 Coding 并选择对应的代码仓库。

  3. 项目基础配置。选择苹果图标,Xcode版本。点击创建

  4. 工作流配置。这是个精细化的配置,指定构建分支。你还可以设置定时任务。每天下班的时候构建一次。如果你有多个Scheme(比如APP有iPhone和iPad版本,免费和收费版本),这个时候可以在编译 - Scheme指定特定的Scheme。完成后可以配置一些构建失败和成功的通知(添加构建成功邮箱地址,小心邮件爆炸哦)。

  5. 添加成员。输入你的组员和测试人员的Email地址,点击邀请。他们会收到标题为Project invitation的邮件。按照提示操作,就可加入你的团队了。

  6. 设置。找到上传证书 & Provisioning Profile,上传准备工作6准备的描述文件和证书。

构建

  1. 自动构建。选择"构建列表",一般等几秒钟就会出现你配置仓库的分支信息了.

  2. 手动构建。如果你嫌自动构建读取分支信息慢,点击手动构建,选择自己想构建的分支。

  3. 构建过程。点击构建当前构建条目(如果状态是准备资源,则需要等待几秒钟。然后自动会变为运行中。),即可看到如下图的构建流程。通常编译阶段会比较容易发生错误信息。按照错误提示修改项目,然后提交到Coding。flow.ci会自动同步代码库并运行构建。

  4. 构建后。发布构建的 APP 到 fir.im 平台。首先需要点击工作流中左边的"+"号并搜索fir,添加fir.im上传插件。在FIR_API_TOKEN框中填入准备工作4获取的API Token。 如果一切顺利的话,你会在 fir.im - 我的应用里面看到构建成功的APP包了。赶紧分享你的APP下载二维码吧。

后面两个选项可以选填。$FIR_CHANGELOG用于显示在 fir.im 下载页面的更新日志。一般我会填 “flow.ci build” 。用于区分手动上传和 flow.ci 自动构建。

总结

总体感觉下来,就是流畅,无缝衔接。作为一个被 Jenkins 折磨过多个版本的人,实在感慨。

flow.ci 目前可以免费创建 5 个项目,在 flow.cidashboard 页面右上角有个电池一样的图标,可以看到你当前的使用情况,还有比较直观的数据分析。这只是 flow.ci 的初体验。

期待以后挖掘更多有趣的功能。


以上是 「flow.ci 最佳实践」系列之 GitHub@mzying2013 的使用分享,希望对你有用。

flow.ci

© 著作权归作者所有

共有 人打赏支持
风起云飞fir_im
粉丝 42
博文 136
码字总数 143328
作品 1
朝阳
fir.im Weekly - iOS 保持界面流畅的技巧

生命不息,coding 不止。本期 fir.im Weekly 收集了微博上的热转资源,包含 Android、iOS 开发工具、源码分享,产品 UI 设计的好文章,还有一些程序员成长的 Tips,希望看完你会有所收获。 ...

风起云飞fir_im
2015/11/16
0
0
关于 fir.im 你可能不知道的实用小工具

大家可能都知道 fir.im 是做测试发包的,上传你的 IPA/APK, 测试用户可以通过一个短链接和二维码就可快速安装测试。 除了基本的发包功能即应用上传下载外,fir.im 还为提高发包体验提供了一系...

风起云飞fir_im
2015/11/16
0
0
fir.im Weekly - iOS 开发中的 Git 流程

本期 fir.im Weekly 收集了微博上的热转资源,包含 Android、iOS 开发工具、源码等好用的轮子,还有一些 APP 设计的 Tips,希望对你有用。 精仿知乎日报 iOS 端 @我偏笑_NSNirvana花了将近一...

风起云飞fir_im
2015/11/03
0
0
【高德LBS开源组件大赛】iOS版地图选中Overlay功能组件

开源组件名称 iOS版地图选中Overlay功能组件 开源组件说明及使用场景 提供在iOS版地图中选中Overlay功能。使用场景很广泛,举个例子,搜索从A点到B点的公交路线时,地图上提供多条路线以供选...

cysgit
2014/07/23
0
2
fir.im Weekly - 每个程序员都应当拥有的技能树

本周收集了一些优秀的 iOS & Android 开发资源和程序员 IT 技能拓展的 Tips. 知道创宇研发技能表 v3.0 作为程序员可能都听说过【知道创宇】,他们是一家黑客文化浓厚的安全公司。这张技能表为...

风起云飞fir_im
2015/09/06
0
0
Jenkins Gitlab持续集成打包平台搭建

相关概念 Jenkins Jenkins,一个用Java编写的开源的持续集成工具,提供了软件开发的持续集成服务,可监控并触发持续重复的工作,具有开源,支持多平台和插件扩展,安装简单,界面化管理等特点...

nineep
06/27
0
0
ComponentOne Xuni助力Xamarin开发者突破百万,快速开发Android、IOS

在微软Build 2015上,随着VS 2015的预览版发布,Xamrine免费版已经作为VS 2015跨平台移动解决方案的核心。与此同时,Xamarin官方也宣布其用户量达到百万之多。2011年7月,Xamarin 开始使用C...

葡萄城控件技术团队
2015/05/13
0
0
IOS工程自动打包并发布脚本实现

作者:webfrogs 转载请注明出处。 前言 IOS的开发过程中,当需要给测试人员发布测试包的时候,直接使用xcode来做的效率是非常低下的。尤其是当有一点小改动需要重新出包时,那简直是个折磨的...

孙哲
2015/03/26
0
6
fir.im Weekly - 30 天从 0 开始学 Swift

最近一周看到很多很好用的的轮子,忍不住推荐给大家。此外,本期 fir.im Weekly 还精选了一些实用的 iOS , Android , UI 动画的干货文章。让我们一起来看下: Hacking with Swift 由@稀土圈...

风起云飞fir_im
2015/11/05
0
0
【IOS视频教学】三个月学会IOS开发

一、windows系统下安装虚拟机-mac系统-视频教程-安装件全套下载:http://www.wyzc.com/forum/56212.html 二、史上最佳0基础Swift语言视频教程下载链接:http://www.wyzc.com/forum/56744.htm...

马洪伟
2014/12/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

大数据教程(2.11):keeperalived+nginx高可用集群搭建教程

上一章节博主为大家介绍了目前大型互联网项目的系统架构体系,相信大家应该注意到其中很重要的一块知识nginx技术,在本节博主将为大家分享nginx的相关技术以及配置过程。 一、nginx相关概念 ...

em_aaron
22分钟前
0
0
Apache Directory Studio连接Weblogic内置LDAP

OBIEE默认使用Weblogic内置LDAP管理用户及组。 要整理已存在的用户及组,此前办法是导出安全数据,文本编辑器打开认证文件,使用正则表达式获取用户及组的信息。 后来想到直接用Apache Dire...

wffger
29分钟前
2
0
HFS

FS,它是一种上传文件的软件。 专为个人用户所设计的 HTTP 档案系统 - Http File Server,如果您觉得架设 FTP Server 太麻烦,那么这个软件可以提供您更方便的档案传输系统,下载后无须安装,...

garkey
33分钟前
1
0
Java IO类库之BufferedInputStream

一、BufferedInputStream介绍 /** * A <code>BufferedInputStream</code> adds * functionality to another input stream-namely, * the ability to buffer the input and to * sup......

老韭菜
36分钟前
0
0
STM 32 窗口看门狗

http://bbs.elecfans.com/jishu_805708_1_1.html https://blog.csdn.net/a1985831055/article/details/77404131...

whoisliang
昨天
0
0
Dubbo解析(六)-服务调用

当dubbo消费方和提供方都发布和引用完成后,第四步就是消费方调用提供方。 还是以dubbo的DemoService举例 -- 提供方<dubbo:application name="demo-provider"/><dubbo:registry address="z...

青离
昨天
1
0
iptables规则备份和恢复、firewalld的9个zone以及操作和service的操作

保存以及备份iptalbes规则 设定了的防火墙规则要进行保存,否则系统重启后这些规则就没有了,使用命令 ”service iptables save ” 会把设定好的防火墙规则保存到文件/etc/sysconfig/iptabl...

黄昏残影
昨天
0
0
k8s image

k8s.gcr.io/kube-apiserver-amd64:v1.11.0k8s.gcr.io/kube-controller-manager-amd64:v1.11.0k8s.gcr.io/kube-scheduler-amd64:v1.11.0k8s.gcr.io/kube-proxy-amd64:v1.11.0k8s.gcr.......

分秒
昨天
0
0
数据结构--排序

这篇博客包含了数据结构中多种的排序算法: (1)简单选择:第一趟在A[0]~A[n-1]之间找到最小的,与A[0]进行交换,之后在A[1]~A[n-1]之间进行。。。第i趟在A[i-1]~A[n-1]之间找到最小的,最后...

wangxuwei
昨天
1
0
一名3年工作经验的java程序员应该具备的职业技能

一名3年工作经验的Java程序员应该具备的技能,这可能是Java程序员们比较关心的内容。我这里要说明一下,以下列举的内容不是都要会的东西—-但是如果你掌握得越多,最终能得到的评价、拿到的薪...

老道士
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部