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

news/2025/1/21 15:35:12

编者按:本文转载自 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.ci 的 dashboard 页面直接点击创建项目

  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

文章来源:https://blog.csdn.net/weixin_33894992/article/details/89056314
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://dhexx.cn/news/show-1246907.html

相关文章

学习python的网站

http://woodpecker.org.cn/

webpack安装使用

一、安装1、安装node.js,Webpack 需要 Node.js v0.6 以上支持2、使用npm(软件包管理 )安装webpack(1)全局安装npm install webpack -g(2)安装到项目依赖中::创建package.json文件npm init ::…

负载均衡 、 静态缓存

upstream project {server 22.22.22.2:3000;server 22.22.22.3:3000;server 22.22.22.5:3000; }server {listen 80;location / {proxy_pass http://project;}location ~* \.(css|js|gif|jpe?g|png)$ {expires 168h;}location /api {expires 10m;} } 转载于:https://www.cnblog…

Cisco ××× 完全配置指南-连载-路由远程访问连接(3)

Cisco 完全配置指南-连载-路由远程访问连接&#xff08;3&#xff09;路由远程访问连接&#xff08;3&#xff09;<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />四、Web SSL 在CISCO基于IOS的路由器上被称为Web &#xff0c;…

阿卡姆大酒店:芋泥波波茶没有波波

前些天给领导做了一碗没有波波也没有芋泥的芋泥波波茶&#xff0c;有点不好意思&#xff0c;今天补上正经的芋泥波波茶没有波波 ╮(╯▽╰)╭带芋头&#xff0c;某宝买的&#xff0c;挺新鲜&#xff0c;上面的泥还是湿的洗个澡 (๑• . •๑)脱衣服白白胖胖的&#xff0c;看着还…

FREERTOS之任务调度补充

2009-05-13 声明&#xff1a;本篇文章主要参考了http://blog.ednchina.com/bluehacker<?XML:NAMESPACE PREFIX O />freertos支持多个任务具有相同的优先级&#xff0c;因此&#xff0c;当它被配置为可抢占内核时&#xff0c;调度算法既支持基于优先级的调度&#xff0c…

js openwindow

进入许多网站时&#xff0c;有弹出式小窗口&#xff0c;它们五花八门&#xff0c;使我们捉摸不透下面就来介绍用JS制作9种制作弹出小窗口&#xff1a; 1、最基本的弹出窗口代码 其实代码非常简单&#xff1a; < SCRIPT LANGUAGE"javascript"> …

MVP 设计模式理解

研究MVP有一段时间了&#xff0c;一直有点迷糊。讲对于MVP的理解没问题&#xff0c;但是开发中使用还是有点懵。下午下了MVP的官方demo研究一段时间&#xff0c;有点感悟。记录下来。 一、理解 接口 看完官方demo&#xff0c;准备自己写个demo。写的时候发现好像不用接口也能实…

Leetcode 17. Letter Combinations of a Phone number

求给出的数字串&#xff0c;如果按照电话键盘的编译方式&#xff0c;可以给出多少那些对应的数字组合。例如&#xff1a; Input:Digit string "23" Output: ["ad", "ae", "af", "bd", "be", "bf", &quo…

实战|一群人齐心协力解决了一个spark问题

首先感谢 spark君 细心的整理&#xff0c;下文是早些时候在群里关于一个SparkSQL条件下推问题的实录&#xff0c;由于刚刚发表了一篇文章&#xff08;Flink SQL vs Spark SQL&#xff09;&#xff0c;正好对这块理解还是热乎的&#xff0c;所以我作为D君&#xff0c;我也混水摸…