Fastlane对iOS的持续集成(自动打包)

传统的打包方式:Archive——>勾选一堆选项及下一步,打包用途、app瘦身、证书——>导出ipa包——>打开蒲公英——>上传ipa包——>填写项目描述、安装密码——>发布测试包

如果发布测试版本次数过多,比如临近上线修复BUG多次提交测试时,显然这种操作力不从心,如果掌握一键打包上传那就轻松太多,以下以Fastlane打包上传蒲公英为例讲一下Fastlane的用法。

概要

Fastlane是一套ruby编写的持续集成工具集。通过Fastlane可以实现自动打包、发布、截取app图片等工作,同时Fastlane可以通过执行ruby代码或者特定编写的脚本来实现这些工作,进而达到自动化构建版本并上传所指渠道。

Fastlane集成

1、ruby安装

大家都知道Fastlane是用ruby编写的,要想正确使用Fastlane必须先安装ruby。

首先检查一下ruby版本,装没装一查便知。

Fastlane对iOS的持续集成(自动打包)_第1张图片
查看ruby版本

ruby同步安装最新版本,不知道安装方法的小伙伴请自行百度,这里就不详细介绍了。

2、Fastlane安装

首先安装Xcode工具,我们这里虽然需要Fastlane自动打包,但其本质还是需要Xcode帮忙完成编译、打包,显然Xcode自带工具必不可少:

xcode-select--install

然后安装Fastlane:

sudo gem install fastlane--verbose

如果报错:

ERROR:  While executing gem ... (TypeError)

no implicit conversionofnil intoString

则更新gem版本,然后再次安装Fastlane:

sudo gem update--system

如果报错:

ERROR:Whileexecuting gem ... (Gem::FilePermissionError)

You don't have write permissions for the /usr/bin directory.

则尝试使用如下命令进行安装:

sudo gem install-n /usr/local/binfastlane

如出现其他报错,百度工程师会告诉你答案或者直接官网寻求帮助!

检查Fastlane是否安装成功:

fastlane--version

3、Fastlane初始化配置

a、cd +空格+项目路径(xxx.xcodeproj同目录即可):

Fastlane对iOS的持续集成(自动打包)_第2张图片
项目路径

b、fastlane初始:

fastlane init

c、fastlane初始化结束后,会提示选择Fastlane的用途,这里我们选择自定义,即输入“4”:

Fastlane对iOS的持续集成(自动打包)_第3张图片
Fastlane自定义

d、安装蒲公英插件,安装后有个y/n的选择,选择y:

fastlane add_plugin pgyer

4、Fastlane自定义

路径:/Users/apple/Desktop/FastlaneTest/fastlane,用sublime打开编辑:

附上sublime下载地址:sublime

Fastlane对iOS的持续集成(自动打包)_第4张图片
原始fastfile

现做如下改动,注释很清晰,大家可以直接复制使用替换掉原始fastfile内容(这里发布adHoc包):

附上ruby教程:ruby

(注意:填入蒲公英平台拿到的api_key和user_key及所要打包项目的scheme)

default_platform(:ios)

# 指定持续集成对象的平台名称

platform :ios do

# 给lane命名:adHoc

lane :adHoc do|options|

branch = options[:branch]

# target区分提测环境

# puts是ruby中的输出,gets为获取终端中输入的文字。

puts "请选择要打的scheme:(1:FastlaneTest,else: 项目Target)"     

scheme = STDIN.gets

# 通过判断输入内容,来区分一些打包信息,1后面加\n是因为在终端输入1再敲回车的时候scheme就包含了回车的内容,所以scheme == "1\n"

if scheme == "1\n"

# 项目中target的名称

  schemeName = "FastlaneTest"

# 打包的用途(app-store, package, ad-hoc, enterprise, development).

  export_method = "ad-hoc"     

else

  schemeName = "项目Target"

  export_method = "enterprise"     

end

#从蒲公英平台拿到的api_key和user_key.

api_key = "xxxxx"

user_key = "xxxxx"

#输入蒲公英上传ipa包后输入的版本描述信息

puts "请输入版本描述信息:"

desc = STDIN.gets

puts "开始打包 #{schemeName}"

# 开始打包

gym(

#指定scheme的名字

scheme: "#{schemeName}",

#输出的ipa名称

output_name:"#{schemeName}",

# 是否清空以前的编译信息 true:是

clean:true,

# 指定打包方式,Release 或者 Debug

configuration:"Release",

# 指定打包所使用的输出方式(app-store, package, ad-hoc, enterprise, development).

export_method:"#{export_method}",

# 访问钥匙串

export_xcargs: "-allowProvisioningUpdates",

# 指定输出文件路径

output_directory:"./fastlane/build",

# 配置证书

#export_options: {

#provisioningProfiles:{

      #"com.xxxx.xxxx" => "xxxxxxxx",

      #}

  #}

)

puts "开始上传到蒲公英"

# 上传屏蔽

#deliver(force: true,

  # 不上传屏幕截图

      #skip_screenshots:true,

      # 不上传元数据

      #skip_metadata:true,

      #)

#开始上传ipa到蒲公英,这里用的是蒲公英提供的插件

#update_description代表更新信息,password代表安装密码

pgyer(update_description: "#{desc}", api_key: "#{api_key}", user_key: "#{user_key}", password: "123456", install_type: "2")

#在上传完ipa后,打开ipa的存放文件夹,起到提示上传完成的作用

system "open ../fastlane/build"

end

5、Fastlane打包上传蒲公英

自检项目证书:

Fastlane对iOS的持续集成(自动打包)_第5张图片
自动匹配证书

同目录终端运行如下命令便可自动发包到对应蒲公英账号:

注意脚本文件执行格式:fastlane+脚本第一行中的platform名+脚本第二行中的lane名

fastlane ios adHoc

终端输入操作:

Fastlane对iOS的持续集成(自动打包)_第6张图片
执行脚本
Fastlane对iOS的持续集成(自动打包)_第7张图片
打包scheme输入”1“,版本描述”打包“

上传蒲公英成功:

Fastlane对iOS的持续集成(自动打包)_第8张图片
打包上传成功


以上简单介绍一些基本用法,不足之处望指正!

Demo:https://github.com/yssEric/Fastlane.git

你可能感兴趣的:(Fastlane对iOS的持续集成(自动打包))