fastlane 自动化打包工具实践

栏目: 服务器 · 发布时间: 5年前

内容简介:最近手里好多项目都是需要打企业版本并上传到fir上去,每次构建版本至少要10分钟,时间长不是最难忍受的,难忍受的是整个过程需要你全程参与,比如选择证书、比如下一步,下一步等,一套搞下来,心累,因此找一个自动化打包工具来节省体力刻不容缓了,求生欲啊,本次我找的工具就是fastlane(docs.fastlane.tools),一款用ruby开发的构建工具,可以自动打包并上传到APPStore,上传到fir,上传到蒲公英,具体过程往下看:确保你的Mac环境有ruby环境,执行ruby-v,查看当前ruby的版本

最近手里好多项目都是需要打企业版本并上传到fir上去,每次构建版本至少要10分钟,时间长不是最难忍受的,难忍受的是整个过程需要你全程参与,比如选择证书、比如下一步,下一步等,一套搞下来,心累,因此找一个自动化打包 工具 来节省体力刻不容缓了,求生欲啊,本次我找的工具就是fastlane(docs.fastlane.tools),一款用 ruby 开发的构建工具,可以自动打包并上传到APPStore,上传到fir,上传到蒲公英,具体过程往下看:

1.首先安装fastlane前的准备工作:

确保你的Mac环境有ruby环境,执行ruby-v,查看当前ruby的版本,如果还没有ruby环境,请自行百度安装,如果你的项目已经使用cocoapod管理第三方包,那么你的mac内就已经安装了ruby环境了,其次我们还需要安装xcode的命令行工具,当然这里不需要自己安装,xcode已经帮我们完成了.

2.正式安装fastlane:

执行sudo gem install fastlane

fastlane 自动化打包工具实践

安装完成后就可以cd到项目目录下:

执行fastlane init

fastlane 自动化打包工具实践

初始化工程中需要你完成一些列选项:

fastlane 自动化打包工具实践

1是自动截图

2是打测试包

3是Appstore上架

4是自定义,

这里我是打包企业版本,选择4,当然所有自定义的包括打企业包、上appstore等都可以自定义脚本来完成.

初始化完成后项目目录下会有fastlane的文件目录:

fastlane 自动化打包工具实践

其中:

Appfile,用于存放AppID和开发者的AppleID,这个文件在我的实践中并没有用到.

Fastfile,用于管理创建的lane,lane则可以调用各个action(即fastlane的工具链)这个文件是核心文件.

Snapfile,用于指定需要进行屏幕截图的设备类型(根据选项生成,可自己创建文件用于配置)

Deliverfile,用于配置发布至appStore的文件(根据选项生成,可自己创建文件用于配置),如果你是选择打包后自动上传到appstore,那么这个文件是必要的,当然也是执行相关命令生成的,后续会提到.

Snapfile和Deliverfile是不会自动生成的,还需要执行其他命令,这个下面有介绍.

这里我只选择了自定义,所以只有前两个文件. 接下来在Fastfile来创建命令,这里构建APP需要使用build_app的action,具体的action介绍自己去看( docs.fastlane.tools/actions ),当前你可以执行, fastlane action xxx ,xxx代表action的名称,比如查看 build_app :

fastlane 自动化打包工具实践
接下来进入本文的重点,如何编写构建脚本

这是具体的脚本,这个脚本是打包企业版本:

desc "企业版本" 
 lane :enterpriseProduction do #自己对当前的lane命名
	build_app( #build_app是打包的action,里面详细的命令请查看https://docs.fastlane.tools/actions/build_app
		workspace:"xxx.xcworkspace",#装有coccoapod的,找到项目的workspace
		scheme:"xxx", #项目命名
		export_method:"enterprise",#导出方式
		output_directory:"./fastlane/package/enterprise",#打包后ipa的存放路径
		output_name:get_build_number()#输出ipa的文件名为当前的build号
		configuration:"Release", #环境
		clean:true #打包前是否需要执行clean	
	   #export_options: { #其他选项,这里手动配置打包的签名证书, 笔者目前都是自动化打包,因此手动打包这一部分并没有去验证,各位有需要的可以自己捣鼓捣鼓
            #provisioningProfiles: { 
               # "com.example.bundleid" => "Provisioning Profile Name",
               #3 "com.example.bundleid2" => "Provisioning Profile Name 2"
     # }
    #}
    )
	#自动上传fir
	firim(firim_api_token:"fir的token")
	#自动上传蒲公英
    pgyer(api_key:"apiKey",user_key:"userkey")
    # add actions here: https://docs.fastlane.tools/actions
  end
复制代码

上面我的执行脚本,这里有个注意点,如果你想写注释请用#开头,笔者之前用//结果各种语法错误,尴尬.笔者一直用的自动化打包方式,fastlane也是默认使用自动化打包,如果你需要手动打包,那么需要配置签名文件等.

编写完成后可以执行打包命令了:

fastlane enterpriseProduction(lane的命名)

执行过程中会build你的整个项目,这中间需要一些时间,打包完成后还需要上传到你们指定的地方去,也是需要时间的,耐心等候.最终:

fastlane 自动化打包工具实践

上面列出了本地打包的耗时458秒.查看下打包出来的目录:

fastlane 自动化打包工具实践

上传到fir或者蒲公英这里笔者暂时是屏蔽掉了.各位需要上传到fir或者蒲公英,那么接着往下看:

1.上传到firim

首先需要安装firim的工具,cd到你的项目目录下, 这里的fir以及蒲公英的工具都必须在项目目录下安装 :

执行fastlane add_plugin firim

fastlane 自动化打包工具实践

这个安装过程还顺带需要安装gem,还需要输入几次密码,照着做就行

安装完成后在fastlane 文件内加上firim(firim_api_token:"fir的token"),如上图,这时你需要获取到你的firim账号上的token,并填写进去:

fastlane 自动化打包工具实践

. 最后再次执行打包命令,整个配置没问题成功后就可以去fir上查看.

2.上传到蒲公英

步骤和fir一致,整个过程中执行的命令不一样而已,你也可以参考蒲公英的文档https://www.pgyer.com/doc/view/fastlane:

首先去项目目录下执行:

fastlane add_plugin pgyer

成功后在fastlane文件内新增:

pgyer(api_key:"apiKey",user_key:"userkey"),其中key去蒲公英上取.

最后执行打包命令,成功后去蒲公英上查看.

以上是企业版本的打包及上传到不同平台的全实践.

接下来讲解的是打包上传到itunes上去:

Fastlane的配置如下:

lane:Appstore do
   build_app(
   	workspace:"xxx.xcworkspace",
   	scheme:"xxx",
   	export_method:"app-store",#这里填appstor
   	output_directory:"./fastlane/package/appstore",#打包后的路径,自己随意
   	configuration:"Release",
   	clean:true	
   	)
   upload_to_app_store( #上传appstore的配置
   	app_identifier:"com.creator.pro.eamp",#bundle Id
   	username:"yaqian.tang@chinacreator.com",#apple Id
   	ipa:"./fastlane/package/appstore/xxx.ipa", #和output_directory的路径对应
   	skip_screenshots:true,
   	skip_app_version_update:false,
   	submit_for_review:false, 
   	reject_if_possible:true,
   	skip_metadata:true
   )
  	
   # add actions here: https://docs.fastlane.tools/actions
 end
复制代码

执行打包命令后,会一步一步要你填写 apple ID及密码,如实填写就行,当然还需要先执行deliver init ,来初始化Deliverfile、screenshots和metadata,这包含了app的截图、icon等一些基础数据,如果你的APP以及在itunes上初始化完成了,那么执行deliver init,就可以把app的相关信息都下载下来,如下,自己去对应的文件夹下看详细内容:

fastlane 自动化打包工具实践

你选择自定义的时候是不会自动给你生成的,你选择3上传到appstore,则是可以自动生成,当然你上架app的第一个版本的信息初始化可以选择完全由fastlane来构建,笔者这里暂时不去探究fastlane中app在itunes上的初始化过程,我个人的建议是自己去itunes上生成app的第一个版本,后续版本的迭代使用fastlane,那样就只需要关心ipa包的上传.

终于写完了,倒腾了一天,整套下来确实是节省了许多打包的时间,心情也好了,开心,学会用好工具也是必修课.


以上所述就是小编给大家介绍的《fastlane 自动化打包工具实践》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

复杂网络理论及其应用

复杂网络理论及其应用

汪小帆、李翔、陈关荣 / 清华大学出版社 / 2006 / 45.00元

国内首部复杂网络专著 【图书目录】 第1章 引论 1.1 引言 1.2 复杂网络研究简史 1.3 基本概念 1.4 本书内容简介 参考文献 第2章 网络拓扑基本模型及其性质 2.1 引言 2.2 规则网络 2.3 随机图 2.4 小世界网络模型 2.5 无标度网络模型 ......一起来看看 《复杂网络理论及其应用》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换