β

使用Jenkins+fir-cli自动发布Android或iOS应用

飞行日志 199 阅读

编者按:感谢 @痕迹BLANK 投稿,原文链接 在此 。我们在征集【使用 fir.im 的工具 上传你的应用】相关的最佳实践教程,系列文章请前往 <用户说> ;对于用心的作者,我们会送出 fir.im 的限量鼠标垫和 复古木质小飞机,欢迎分享 fir.im 更高阶的玩法:)


使用Jenkins+FIR.im自动发布Android或iOS应用

1、持续集成(英语:Continuous integration,缩写为 CI)

什么是持续集成

随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。 持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

一个典型的持续集成周期包括以下几个步骤

持续集成实践的目的不是减少Build失败的次数,而是尽早发现问题,在最短的时间内解决问题,减少风险和浪费。

2、选择持续集成服务器

3、 Jenkins

Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。下面将介绍 Jenkins 的基本功能。

安装

方法一(官方下载安装)

从 Jenkins 的主页上下载最新的 jenkins.war 下载

$wget http://mirrors.jenkins-ci.org/war/latest/jenkins.war

运行

$ java -jar jenkins.war。

方法二(通过Homebrew安装)

安装

$brew install jenkins

启动服务

$jenkins

New Job

通过两种方式安装并启动服务后就可以能过 http://127.0.0.1:8080访 问Jenkins的管理后台

fir.im

必要插件安装

进入管理页面后先到插件管理搜索安装一些必要的插件 - GIT plugin -

4、 FIR.im

「fir.im」是国内首家为移动开发者提供 App 免费托管分发服务的平台,为移动开发者提供极速测试发布、崩溃收集分析、用户反馈收集等一系列开发测试效率工具服务,能够让开发者更专注于产品开发与优化。

fir.im

App分发平台也有很多,去年也有使用过其他一些分发平台,但最终我们还是选择了FIR.im

fir-cli

通过 fir-cli 命令行的指令查看、上传、编译应用

安装

fir-cli 使用 Ruby 构建,只要安装相应 ruby gem 即可:

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

5、自动发布Android应用到FIR.im

准备工作

当然首先要有个Android的开发及编译环境

JDK

通过官方下载安装 http://java.com/

Android SDK

可以在官网下载安装 https://developer.android.com/sdk/index.html 也可以这样~

$brew install android-sdk

装好SDK后把相应的platform下载回来(由于有GFW,会发生什么你懂的)

Gradle

$brew install gradle

开始配置持续构建任务

创建一个任务,选择构建自由风格的软件项目即可

fir.im

配置代码版本控制(通过GIT) 这是一个我准备做的一个开源项目,现在暂时拿来当演示项目 https://coding.net/u/lijy91/p/Seafile-Android/git

fir.im

增加构步骤

fir.im

在Command里写入命令

./jenkins-build.sh

编译和发布的命令已经写在了jenkins-build.sh脚本里了,只是简单的三行代码,通过gradle构建

#!/bin/sh

gradle clean

gradle assembleFIRIMRelease

fir publish ./app/build/outputs/apk/app-FIRIM-release.apk -T YOUR_TOKEN -c $(cat changelogs/changelog.txt)  

点击保存后,在管理界面点击立即构建,如果没有一切环境都配置好了的话,不一会就会把发发布到fir.im上了

6、自动发布iOS应用到FIR.im

准备工作

XCode

因为我没有苹果的开发者账号,所以这次用的是XCode 7 beta版

CocoaPods

$sudo gem install cocoapods

开始配置持续构建任务

创建一个任务,选择构建自由风格的软件项目即可

fir.im
配置代码版本控制(通过GIT) 这是iOS版的,用Swift写的,写了一点点,也拿来演示 https://coding.net/u/lijy91/p/Seafile-iOS/git

fir.im

增加构步骤

fir.im
在Command里写入命令

./jenkins-build.sh

以下内容是脚本的内容,其实iOS打包是需证书的,证书已经安装到本机上了!

fir build_ipa ./ -o ./build/output -p -T YOUR_TOKEN  

由于 iOS只能在OSX系统上编译,所以要构建iOS的应用就只能把jenkins运行在OSX上~

总结

在之前,我们公司里经常会听到Leo发个包,Kim发个包,Ben发个包,Vincent发个包,KK发个包,一系列的发个包,但是如果我们把持续集成建立起来,我就不需要再叫了,我进入后台随便点两下,等待几分钟后一个新鲜滚热辣的App就出来了。

参考链接:

  1. Jenkins官网
  2. 基于 Jenkins 快速搭建持续集成环境

以上是 「fir.im 最佳实践教程」系列之 @痕迹BLANK 的使用分享,希望对你有用。

fir.im

作者:飞行日志
飞行日志
原文地址:使用Jenkins+fir-cli自动发布Android或iOS应用, 感谢原作者分享。

发表评论