ios持续化集成-fastlane+jenkins+蒲公英+alfred+Webhook通知企业微信
使用初衷
公司产品版本比较多,很多版本都需要独立化部署。导致产生了每个地址需要打包,每次打包就是一件麻烦的事情,常常一下午的时间过去了却都浪费在打包这件事情上了。So…研究了下Fastlane+Jenkins+蒲公英。可以方便的发布和管理版本。爬了很多坑。写出来让大家参考下。
蒲公英也可以用fir.im代替,后续也可以持续集成webhook机器人,邮件等通知推送。
方案选择
方案很多种,看自己情况选择。
1、利用空闲苹果电脑做服务器,跑Jenkins用来自动监听,只要git合并上传,就自动打包。
2、本地安装jerkins(不建议)。
3、本地主动触发/利用Alfred编写插件执行流程。
基础名词
Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言
RVM是一个命令行工具,它允许您轻松地安装,管理和使用从解释器到多组gems多个ruby环境。
Gems RubyGems简称gems,是一个用于对 Ruby组件进行打包的 Ruby 打包系统。例如经常用的cocoapods就需要 gem 来管理。
Fastlane是Felix Krause大神写的fastlane是一套使用Ruby写的自动化工具集,用于iOS和Android的自动化打包、发布等工作。
pgyer/fir 第三方发布测试平台。
爬坑攻略
如果你在安装期间想很顺利的话,请务必按照步骤去做,本教程只针对Mac。
此文档是二次更新的,因为第一次写的时候,就根据安装记录写出来了,第二次在别的机器上部署的时候,就出现了各种问题,所以就有了这次的更新内容。
Ruby处理
使用Mac的小伙伴都应该能感受OSX的好处,本人对Mac中毒很深,要是让我说一点什么不好的话,就是价格太高。
各种环境,系统都自带了ruby,python等等,且不会出现全家桶的问候。
Mac系统自带ruby,但是是给系统自己使用,权限很小,所以在平时使用过程中,会出现很多问题,而且版本一般都比较低,所以大多人都在自己使用RVM来管理自己使用的ruby.
参照此文档来安装 RVM使用ruby 使用RVM来管理rubyhttps://www.jianshu.com/p/c44ef74d99f9
ruby安装完成之后,来进行下一步。
Fastlane 安装初始化
- 确保你已经安装了最新版本的Xcode命令行工具:
xcode-select --install
下方图片是已经安装则不用处理。
官方文档支持三种方式安装,我使用的是ruby,刚才不是使用RVM来管理自己的ruby 么,接下来我们来安装fastlane
gem install fastlane -NV
方法 | os支持 | 描述 |
---|---|---|
Homebrew | 苹果系统 | brew cask install fastlane |
安装程序脚本 | 苹果系统 | 下载zip文件。然后双击install脚本(或在终端窗口中运行)。 |
RubyGems | 带有Ruby版本> 2.0.0 | gem install fastlane -NV |
如果使用的是系统自带的ruby,可能会报错没有权限。
ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /Library/Ruby/Gems/2.3.0 directory.ERROR: While executing gem ... (Gem::FilePermissionError) You don't have write permissions for the /usr/bin directory.
查看自己是否使用的是自己管理的ruby
which ruby> 返回/Users/seven/.rvm/rubies/ruby-2.4.1/bin/ruby> 则说明已经使用RVM管理的Ruby了,非系统自带的。> 如果是usr/bin这个目录下的则说明还在使用系统自带的,可能会出现一系列权限的问题,请更换。
如果你非要使用系统自带的,也可以,也可能出现问题,也可能没事,跟系统版本也有关系,
下面给出系统自带问题的一些些方法。如跟我一样使用非系统自带ruby,请跳过此步骤。
> 方法一:sudo gem install fastlane -NV //提升权限,部分系统权限还是不够。> 方法二:安装到别的目录使用指定目录安装: sudo gem install -n /usr/local/bin fastlane> 方法三:还是使用RVM管理ruby
- 初始化
安装完毕后,在终端进入到你的项目目录下。初始化fastlane
fastlane init
如果没有报错,就跳过此条继续报错Exit status of command ‘bundle exec pod install’ was 1 instead of 0. bundler: failed to load command: pod (/usr/local/bin/pod)解决方法:在项目根目录下 fastlane/Fastfile 修改文件中的cocoapods’ cocoapods(use_bundle_exec: false)’
这4个选项意思分别是:
自动截屏。
自动发布beta版本用于TestFlight。
自动的App Store发布包。我们的目标是要提交审核到APP Store,按道理应该选这个,但这里我们先不选,因为选择了以后会需要输入用户名密码,以及下载meta信息,需要花费一定时间,这些数据我们可以后期进行配置。
手动设置。(推荐)
如果选择了3 会提示让你输入账号(我选择手动配置)
按照提示输入开发者账号(付费账号) 输入Bundle Identifier 用于初始化配置,后期可在配置文件改。随便输入根据提供的信息,fastlane会自动为您生成一个配置。
您可以看到新创建的./fastlane目录,包含Appfile和Fastfile文件。
最有趣的文件是fastlane/Fastfile,其中包含分发您的应用程序所需的所有信息。
这样就完成了初始化
蒲公英插件安装
初始化完毕后直接在终端输入
//fastlane fastlane search_plugins//列出可用插件fastlane add_plugin pgyer//安装插件
插件安装成功./fastlane目录下会生成Pluginfile的一个文件。插件安装不成功,就是fastlane安装的有问题。
配置Fastlane
文件名 | 描述 |
---|---|
Appfile | 从 Apple Developer Portal 获取和项目相关的信息 详情 |
Fastfile | 核心文件,存放lane任务 |
Deliverfile | deliver的配置文件,从 iTunes Connect 获取和项目相关的信息详细 |
metadata | 同步iTC中的元数据 |
screenshots | 同步iTC中的截图 |
fastlane工具集是配置fastlane最重要的
文件名 | 描述 |
---|---|
match |
证书和配置文件管理工具会重置证书,推荐新项目使用。
ios持续化集成-fastlane+jenkins+蒲公英+alfred+Webhook通知企业微信相关推荐
最新文章
热门文章 |