fastfile + 蒲公英 自动化打包

1,597 阅读3分钟

Fastlane 是用Ruby语言编写的一套自动化工具集和框架,每一个工具实际都对应一个Ruby脚本,用来执行某一个特定的任务,而Fastlane核心框架则允许使用者通过类似配置文件的形式,将不同的工具有机而灵活的结合在一起,从而形成一个个完整的自动化流程。

先进行fastlane的安装

sudo gem install fastlane --verbose

确保Xcode安装了最新版本命令行工具

xcode-select --install

如果fastlane加载缓慢,请尝试运行

gem clean up

找到项根目目录

cd /Users/jsqb/Desktop/iOS

执行fastlane安装

执行 fastlane init
配置开发者账户user,password,bundle identfier

会生成fastlane文件

Appfile  - 包含你的app_id bundle id 如果上步init的时候你输入了正确的appId账号和密码会在这里生成正确的team_id信息
Fastfile - 是最重要的一个文件,编写和定制我们打包脚本的一个文件

fastlane 工具

除fastlane命令,你还可以访问以下fastlane工具

  • deliver: 上传截图, 元数据, app应用程序到App Store
  • supply: 上传Android app应用程序和元数据到Google Play
  • snapshot: 自动捕获iOS app应用程序本地截图
  • screengrab: 自动捕获Android app应用程序本地截图
  • frameit: 快速截屏并将截屏放入设备中
  • pem: 自动生成和更新推送通知配置文件
  • sigh: 开发证书和描述文件下载
  • produce: 使用命令行在iTunes Connect上创建新的app和开发入口
  • cert: 自动创建和配置iOS代码签名证书
  • spaceship: Ruby 库访问 Apple开发者中心和 iTunes Connect
  • pilot: 最好的方式管理你的TestFlight 测试人员和从终端构建
  • boarding: 最简单的方式邀请你的TestFlight beta测试人员
  • gym: iOS app打包签名自动化工具
  • match: 使用Git同步你的团队证书和配置文件
  • scan: 最简单方式测试你的 iOS 和 Mac apps

我们使用gym来做自动化打包

在生成的fastlane文件中新增 .env文件, 配置文件内容如下可自行扩展

# .env全局配置文件
# bundleId
APP_IDENTIFIER = "com.xqb.R"

# 蒲公英,更新描述
PGY_UPDATE_DESCRIPTION = "3.0.0测试包"

# 自动提交审核
SUBMIT_FOR_REVIEW = false

# 审核通过后立刻发布
AUTOMATIC_RELEASE = false

# 苹果开发者账号
APPLE_ID = "xxxxx@qq.com"

# 苹果开发者帐号密码
FASTLANE_PASSWORD = "xxxxx"

# 套装ID
TEAM_ID = "xxxx"

# APP元数据及截图存放路径
METADATA_PATH = "./metadata/TestGitProject"
SCREENSHOTS_PATH = "./screenshots/TestGitProject"

# APP元数据及截图下载时,直接覆盖原有数据,不询问
DELIVER_FORCE_OVERWRITE = true

# 包名
SCHEME = "KDFDApp"

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

# 指定打包所使用的输出方式,目前支持app-store, package, ad-hoc, enterprise, development
EXPORT_METHOD = "enterprise"

# 蒲公英api key 蒲公英平台提供
PGY_API_KEY = "xxxx"

# 蒲公英api key
PGY_USER_KEY = "xxxx"

Appfile 文件内容

app_identifier ENV['APP_IDENTIFIER']
apple_id ENV['APPLE_ID']
team_id ENV['TEAM_ID']

Deliverfile 文件内容

app_identifier ENV['APP_IDENTIFIER']
username ENV['APPLE_ID']

安装蒲公英的 Fastlane 插件

终端输入 astlane add_plugin pgyer

在生成的Gemfile文件中新增

gem 'cocoapods'

最后我们编写fastlile文件来运行运行脚本

desc "发布测试版本到蒲公英"
lane :qb_pgy do
gym(scheme: ENV['SCHEME'],
silent: true,                              # 隐藏没有必要的信息
include_symbols: true,              # 是否生成符号表,默认true
include_bitcode: true,              # 是否开启bitcode,默认true
clean:true,                         # 是否清空以前的编译信息 true:是
configuration: ENV['CONFIGURATION'],
export_method: ENV['EXPORT_METHOD'],
output_name: "极速钱包",                   # 输出文件名
output_directory: "./fastlane/bulid") # 指定输出文件夹
pgyer(api_key: ENV['PGY_API_KEY'],
user_key: ENV['PGY_USER_KEY'],
update_description: ENV['PGY_UPDATE_DESCRIPTION'])
end
desc "打包正式版本"
lane :qb_appStore do
gym(scheme: ENV['SCHEME'],
output_name: "极速钱包",  # 输出的ipa名称
silent: true,  # 隐藏没有必要的信息
clean: true,  # 在构建前先clean
configuration: "Release",  # 配置为Release版本
codesigning_identity: "iPhone Distribution: Shanghai Peijun Information Technology Co., Ltd. (DFB9QG8MBN)",  # 代码签名证书
buildlog_path: "./fastlane/onLine/fastlanelog",  # fastlane构建ipa的日志输出目录
output_directory: "./fastlane/onLine")
end

编写好后先把证书在工程中选择正确,我们就可以在终端中通过fastlane+蒲公英就可以来实现自动化打包发布功能

fastlane qb_pgy

最后上传成功用时 74s

image

这部分自动化文件没必要提交到远端服务器,我们在gitignore文件中新增忽略信息

*fastlane/

通过 fastfile 就可以定制各种自动化流程。