iOS 自动构建套件 - flow.ci + fir.im + Coding
编者按:本文转载自 flow.ci 用户 GitHub@mzying2013 的实践分享,原文链接这里。
前言
相信很多最开始接触自动构建都是从 Jenkins 开始的。都是纯手工搭建,本地代码创库也是 Gitblit 搭建的。基本上每次换工作,都需要重新搭建一遍,实在心累。期间踩坑无数,暂且不表。接触到 flow.ci 还是因为之前一直在用他们的 APP 发布平台服务
fir.im 。本文是我对 flow.ci 的一些体验,期望可以帮助 iOSer 快速上手。
准备工作
项目的 Git 仓库(什么?还在用SVN!恨铁不成钢的表情,SVN转Git可以看这里)
注册 Coding 账号,创建Coding私有创库(免费的哦)。
如果之前有Git仓库,也可以新建一个专门用于自动构建的分支
- 注册 flow.ci 账号(不收费,不过要手机号码接收短信验证码)
注册 fir.im 账号,生成并获取 API Token (不收费,不过要手机号码接收短信验证码)

- 绑定 Coding 账户。在 dashboard 页面点击用户头像 - Git仓库或创建项目都可以绑定 Coding 账户。(GitHub,Bitbucket,Coding,GitLab,码云都是支持的)
证书和描述文件。引用一下 flow.ci 自己的详细导出证书和描述文件教程。
(企业证书请忽略)切记在描述文件里面添加要安装设备的 UDID,否则会出现从 fir.im 下载的时候,提示“无法安装该应用”。到时候需要重新在描述文件添加 UDID,然后重新上传描述文件并再次构建。
开工
项目配置
- 选择 Coding 并选择对应的代码仓库。
项目基础配置。选择苹果图标,Xcode版本。点击创建。

工作流配置。这是个精细化的配置,指定构建分支。你还可以设置定时任务。每天下班的时候构建一次。如果你有多个Scheme(比如APP有iPhone和iPad版本,免费和收费版本),这个时候可以在编译 - Scheme指定特定的Scheme。完成后可以配置一些构建失败和成功的通知(添加构建成功邮箱地址,小心邮件爆炸哦)。
添加成员。输入你的组员和测试人员的Email地址,点击邀请。他们会收到标题为Project invitation的邮件。按照提示操作,就可加入你的团队了。
设置。找到上传证书 & Provisioning Profile,上传准备工作6准备的描述文件和证书。

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

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

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

构建后。发布构建的 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.ci 的 dashboard 页面右上角有个电池一样的图标,可以看到你当前的使用情况,还有比较直观的数据分析。这只是 flow.ci 的初体验。
期待以后挖掘更多有趣的功能。
_____
以上是 「flow.ci 最佳实践」系列之 GitHub@mzying2013 的使用分享,希望对你有用。
flow.ci
iOS 自动构建套件 - flow.ci + fir.im + Coding的更多相关文章
- CI Weekly #18 | flow.ci iOS 最佳实践出炉,正式支持 Git@OSC 构建
如大家所期待,flow.ci 现已支持开源中国的代码仓库 - 码云,可以直接构建 Git@OSC 的项目了,点击创建项目-选择代码仓库-选择码云-绑定 OSChina 账户-选择要构建项目,教程看这里 ...
- 几分钟看完 flow.ci 全部功能
从 0 到 1,从邀请式内测到收费上线,flow.ci 经历了十个多月的沉淀与打磨.这期间,flow.ci 工程师们奋力赶工,进行了一系列的大功能更新,Bug 修复,功能优化. 这篇文章记录了 flo ...
- CI Weekly #22 | flow.ci 新版 iOS 构建流程的 4 大变化
好久不见,最近 flow.ci 针对 iOS 项目重新设计了创建项目的流程,较之前相比有 4 个变化: 在创建项目阶段加入项目有效性检测,大大减少了构建失败率,有问题早发现! 在创建项目阶段加入项目配 ...
- iOS开发进阶 - 使用shell脚本自动打包上传到fir.im上-b
用fir.im测试已经好长时间了,感觉每次打包上传都很麻烦,想着是不是可以用脚本自动打包,在网上搜了一下确实有,下面总结一下如何使用脚本自动打包上传到fir.im,以及打包过程中遇到的问题和解决办法 ...
- CI Weekly #17 | flow.ci 支持 Java 构建以及 Docker/DevOps 实践分享
这周一,我们迫不及待写下了最新的 changelog -- 项目语言新增「Java」.创建 Java 项目工作流和其它语言项目配置很相似,flow.ci 提供了默认的 Java 项目构建流程模版,快去 ...
- GitHub搭配使用Travis CI 进行自动构建服务
Travis CI (Continuous Integration)持续集成服务 用处:自动监控软件仓库,可以在代码提交后立刻执行自动测试或构建 1.在Github自己的仓库根目录里添加.travis ...
- 基于GitLab CI搭建Golang自动构建环境
基于GitLab CI搭建Golang自动构建环境 Golang发布遇到的问题 对于golang的发布,之前一直没有一套规范的发布流程,来看看之前发布流程: 方案一 开发者本地环境需要将环境变量文件改 ...
- 再探CI,Github调戏Action手记——自动构建并发布到另一仓库
前言 接上文初探CI,Github调戏Action手记--自动构建并发布 在学习了Action的基本操作之后 接着我们来探索Action其他可能的功能 众所周知 只有用得到的技术学习的才会最快 我也是 ...
- 初探CI,Github调戏Action手记——自动构建并发布
前言 最近在做脚本的说明文档时使用了vuepress这个东西 前端实在是菜,只能随便写写了 正常写完md文件之后推送至github做版本控制 而前端页面的生成则是在本地,部署也是在本地手工进行 一套下 ...
随机推荐
- 【转】深入理解RunLoop
RunLoop 是 iOS 和 OS X 开发中非常基础的一个概念,这篇文章将从 CFRunLoop 的源码入手,介绍 RunLoop 的概念以及底层实现原理.之后会介绍一下在 iOS 中,苹果是如何 ...
- box-shadow IE8兼容处理
根据canisue(http://caniuse.com/#search=box-shadow),box-shadow兼容性如下图所示: 测试代码: <!DOCTYPE html> < ...
- JQ鼠标右键点击功能 兼容IE8
//阻止浏览器当前DIV默认右键事件 $("div").unbind("mousedown").bind("contextmenu", fu ...
- Atom 编辑器试用
简介 它号称"21世纪可黑客的文本编辑器".GitHub支持并开源,并支持跨平台.和brackets编辑器一样基于浏览器开发,意味着你可以使用less(包含css)来定制编辑器界面 ...
- javaweb浏览器随机输出一张验证码图片
一.在web.xml中的配置如下: <?xml version="1.0" encoding="UTF-8"?><web-app xmlns: ...
- JQ实战一之烟花
本次的效果大概为当用户点击网页时,网页下方弹出一个类似烟花的长条条,然后在桌面上散开以达成类似烟花的特效.话不多说先上图. 首先布局,布局很简单 <style> body { backgr ...
- 从Hosting开始
一.介绍: Hosting作为用户编程入口,往下管理HttpServer,往上构建并调用Http请求中间件的管线(RequestDelegate 在HttpAbstractions模块细说),承上启下 ...
- 老李分享: JSON
老李分享: JSON poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478, ...
- 达到工业使用质量级别的类似于QQ截屏的软件
到网上查找截屏发现基本都是一些小孩子的初级玩意,功能强大一点的又没有源代码所以自己花了三四天时间写了一个能达到工业使用质量级别的截图控件. 优点:1.代码量小只有1500行代码 2.结构清晰简单极易于 ...
- BS结构中,web如何将数据进行DES加密并写道IC卡中
在IC卡应用系统中,一般都要对IC卡数据进行DES加密,以保证数据的安全.友我科技RFID读写器云服务2.0充分考虑了这个需求,只需要软件工程师简单的配置即可实现数据的加解密并且写到数据块中.如下图所 ...