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
这部分自动化文件没必要提交到远端服务器,我们在gitignore文件中新增忽略信息
*fastlane/
复制代码