Fastlane实现一键自动打包(多Target 多开发者账号)

Fastlane实现一键自动打包(多Target 多开发者账号),第1张

Fastlane简介

fastlane 官网已经讲得非常清楚,fastlane 是一个关于 App 发布的工具集,除了提供 iOS 发布相关工具外,也支持 Android App 发布。根据官网显示,目前已经为开发者节省了6158597 个小时,被誉为开发者的救星也不为过。

Fastlane安装

我们可以通过$ sudo gem install fastlane -NV 来执行安装,或者通过homebrew来安装:brew install fastlane。

Fastlane配置

在 xcode 工程目录下,执行$ fastlane init

执行过程中,会提示输入苹果账号密码,自动下载 App 元数据等信息,由于我们的 xcode 工程中使用的是 mutil target,但 fastlane init 只能处理一个 target 的信息,所以我们按照提示输入任意一个 target 的相关信息就行了,后面通过修改配置文件来实现 mutil target 的支持。

fastlane 初始化完成后,会在 xcode 目录下自动生成以下文件:

metadata 目录:存放 App 元数据,包括 App 简介,Icon,Copyright 等

screenshots 目录:顾名思义,存放 App store 中的截图

Appfile:用于指定 app_identifier, apple_id, team_id;本文中每个 target 都有自己的 app_identifier, apple_id 和 team_id

Deliverfile:用于指定跟 App 版本发布相关的信息,除了 apple_identifier 外,还包括 submit_for_review, automatic_release 等可配置项,基本覆盖 iTunes Connect 里面的所有选项

Fastfile:用于编写逻辑脚本,使用 ruby 语言,例如首先执行 cocoapods 更新第三方依赖库,然后执行 pem 更新相关证书,接着通过 gym 来编译并打包 ipa 文件,最后通过 deliver 发布到 iTunes Connect 中,并提交审核。具体逻辑按照开发者需求自行设计。

Fastlane配置文件修改

fastlane 默认支持一个 target,对于这类型需求,只需要按着 fastlane 提供的官方教程学习即可,很简单。但对于 mutil target,并且每个 target 对应不同的开发者账号的情况,配置起来稍微有点不同。

使用.env环境变量文件配置多target
 fastlane init 后默认生成的文件中并没有.env 文件。此文件的作用理解起来很简单,说白了就是自定义临时变量,供 Appfile, Deliverfile和 Fastfile使用。理解原理后,使用起来就简单了,就是有几个 target,就创建几个.env 文件,提供不同的变量值,供不同 target 编译打包上传时使用。

咱们有4个target,对应两个开发者账号,所以我写了.env.tiandy和.env.smart,其配置,其中保存各自的开发者账号相关信息。如图:

不同 账号信息可以通过env环境变量来设置    
其他配置文件可通过 ENV['APP_IDENTIFIER'] 来读取变量值
$ app_identifier ENV['APP_IDENTIFIER']
fastlane 调用时,通过添加参数 --env 来指定待读取的 .env 文件.

Appfile文件修改成使用ENV读取配置如图:

每个target读取均从env环境变量中读取对应的开发者信息

FastLane 配置

在对 Fastfile 进行配置前,我们先了解下 lane.lane可以理解为 fastlane 的执行脚本,一个Fastfile 里可以编写任意个lane,每个lane都可以独立运行,也可以嵌套运行。话不多说,直接上代码:

我们可以通过执行fastlane deploy_in来同时打多个target脚本,最终我们可以再Fastfile中编写我们想要实现的事务脚本

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/990644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存