fastlane is the easiest way to automate beta deployments and releases for your iOS and Android apps. It handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing your application.
一 fastlane 安装
(1)xcode-select --install
若提示如下图,则说明已经安装了Xcode命令行工具;否则会弹出对话框,选择安装即可。
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
(2)ruby -v
查看ruby版本,最好是最新的版本,网上有讲2.0.0 以上版本即可,但我的仍然会报错
ruby 2.0.0p648 (2015-12-16 revision 53162) [universal.x86_64-darwin16]
(2.1)ruby 升级版本使用rvm
(3)安装fastlane
sudo gem install fastlane -NV
我在安装过程中报错,依赖版本错误
ERROR: While executing gem ... (Gem::DependencyError)
Unable to resolve dependencies: fastlane requires tty-screen (< 1.0.0, >= 0.6.3), tty-spinner (< 1.0.0, >= 0.8.0)
经查是需要升级tty-screen 和tty-spinner,升级方法
sudo gem install tty-screen
sudo gem install tty-spinner
之后再次重新执行fastlane 安装命令
二 fastlane 配置
(1)fastlane init
在包含xxx.xcodeproj的项目目录下执行,会生成一个fastlane目录,目录之下有两个文件Fastfile 打包信息文件 和 Appfile app账号信息
(2)fastlane add_plugin firim / fastlane add_plugin firim pgyer
使用命令行安装fir插件和蒲公英插件
(3) fastfale 文件配置
desc "正式环境测试版"
lane :formality_bate do |op|#op 可传入参数
increment_version_number(version_number: op[:vnum])#vnum 是参数名,命令行调用的时候输入的参数名,设置version版本
increment_build_number(build_number: op[:bnum])#设置build版本
set_info_plist_value(path: "./项目名称/.plist",#设置plist,此处传入plist路径,可以用来做环境配置
key: "isTest",
value: false)
# 开始打包
gym(use_legacy_build_api: true,
silent: true, # 隐藏没有必要的信息
clean: true, # 在构建前先clean
configuration: "Release", # 配置为Release版本
scheme: "scheme名称",
export_method: "ad-hoc",#打包所选的种类(就是App Store,生产测试,企业,开发测试那四种), app-store,ad-hoc,enterprise,development
codesigning_identity: "iPhone Distribution: xxx Co.,Ltd. (5JC8GZ432G)", # 代码签名证书
buildlog_path: "./fastlanelog", # fastlane构建ipa的日志输出目录
output_directory: "/Users/xxx/Desktop"# ipa输出目录
output_name: "文件名.ipa"
)
pgyer(api_key: "蒲公英账户下自行查看", user_key: "蒲公英账户下自行查看", update_description: op[:desc])#上传蒲公英,如果是新项目,蒲公英会自行创建,update_description:描述
end
desc "测试环境测试版"
lane :test_bate do |op|
increment_version_number(version_number: op[:vnum])
increment_build_number(build_number: op[:bnum])
set_info_plist_value(path: "./项目名称/HostAddress.plist",
key: "isTest",
value: true)
# 开始打包
gym(use_legacy_build_api: true,
silent: true, # 隐藏没有必要的信息
clean: true, # 在构建前先clean
configuration: "Release", # 配置为Release版本
scheme: "scheme名称",
export_method: "ad-hoc",#打包所选的种类(就是App Store,生产测试,企业,开发测试那四种), app-store,ad-hoc,enterprise,development
codesigning_identity: "iPhone Distribution: xxx Co.,Ltd. (5JC8GZ432G)", # 代码签名证书
buildlog_path: "./fastlanelog", # fastlane构建ipa的日志输出目录
output_directory: "/Users/xxx/Desktop"# ipa输出目录
output_name: "文件名.ipa"
)
pgyer(api_key: "蒲公英账户下自行查看", user_key: "蒲公英账户下自行查看", update_description: op[:desc])#上传蒲公英,如果是新项目,蒲公英会自行创建,update_description:描述
end
desc "双打"#此lane 为将两个lane 封装,一次调用(不知道可不可以优化成同时调用,目前是串行队列,但是还要考虑打包的过程是否可以并发)
lane :all_bate do |op|
vnumber = op[:vnum]
bnumber = op[:bnum]
descstr = op[:desc]
formality_bate(vnum:vnumber, bnum:bnumber)
test_bate(vnum:vnumber, bnum:bnumber, desc:descstr)
end
三 fastlane 调用
fastlane all_bate vnum:9.9.9 bnum:99 desc:测试一下
网友评论