Fastlane是一套使用Ruby写的自动化工具集,旨在简化Android和iOS的部署过程,自动化你的工作流。它可以简化一些乏味、单调、重复的工作,像截图、代码签名以及发布App
一、安装xcode命令行工具
xcode-select --install
如果没有安装,会弹出对话框,点击安装。如果提示:
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
表示已经安装
二、安装Fastlane
sudo gem install fastlane -NV
或者:
brew cask install fastlane
安装完成后执行:
fastlane --version
确认下是否安装完成和当前使用的版本号。
三、初始化Fastlane
终端cd到工程项目的目录执行:
fastlane init
这里会弹出四个选项,问你想要用Fastlane做什么?
第一个选项的意思是:自动截屏。这个功能能帮我们自动截取APP中的截图,并添加手机边框(如果需要的话) 第二个选项的意思是:自动发布beta版本用于TestFlight 第三个选项的意思是:自动发布到AppStore 第四个选项的意思是:手动设置
我在这里选的是2(大家可根据自己需要选择)
如果你的工程是用cocoapods的那么可能会提示让你勾选工程的Scheme,步骤就是打开你的xcode,点击Manage Schemes,在一堆三方库中找到你的项目Scheme,在后面的多选框中进行勾选,然后终端移除fastlane文件夹:
rm -rf fastlane
重新初始化一次:
fastlane init
就不会报错了。
接着会提示你输入开发者账号和密码。
[20:48:55]: Please enter your Apple ID developer credentials
[20:48:55]: Apple ID Username:
登录成功后会提示你是否需要下载你的App的metadata。点y等待就可以。
如果报其他错的话,一般会带有github的相似的Issues的链接,里面一般都会有解决方案。
四、文件系统
初始化成功后会在当前工程目录生成一个fastlane文件夹,文件目录:
其中metadata和screenshots分别对应App元数据和商店应用截图。
Appfile:存放App的apple_id team_id app_identifier等信息
Deliverfile:发布的配置信息,一般情况用不到。
Fastfile:我们的工作文件。
Appfile
app_identifier("APP的Bundle ID") # The bundle identifier of your app
apple_id("你的AppleID") # Your Apple email address
itc_team_id("你的Team ID") # App Store Connect Team ID
team_id("你的开发Team ID") # Developer Portal Team ID
# For more information about the Appfile, see:
# https://docs.fastlane.tools/advanced/#appfile
Fastfile
default_platform(:ios)
platform :ios do
desc "Push a new release build to the App Store"
lane :release do
build_app(workspace: "工程名.xcworkspace", scheme: "工程scheme")
upload_to_app_store(skip_screenshots: true,skip_metadata: true)
end
lane :beta do
build_app(export_method: "ad-hoc")
pgyer(api_key: "蒲公英api_key", user_key: "蒲公英user_key")
end
end
Fastfile中lane的用法可以参阅文档:fastlane docs,中文文档:fastlane docs 中文文档
安装蒲公英插件
fastlane add_plugin pgyer
安装完插件之后Pluginfile
文件内容如下:
# Autogenerated by fastlane
#
# Ensure this file is checked in to source control!
gem 'fastlane-plugin-pgyer'
五、执行打包命令
终端执行命令:
fastlane beta
然后等待,终端出现fastlane.tools finished successfully
,这会儿就可以在蒲公英上看到最新上传的包了。关于证书的管理可以参考文章:iOS使用 fastlane match 管理代码签名
注意
1、可以在before_all中做一些前置操作,比如进行build号的更新,我个人建议不要对Version进行自动修改,可以作为参数传递进来。
2、如果ipa包存放的文件夹为工作区,记得在.gitignore中进行忽略处理,我建议把fastlane文件也进行忽略,否则回退版本打包时缺失文件还需要手动打包。
3、如果你的Apple ID在登录时进行了验证码验证,那么需要设置一个专业密码供fastlane上传使用,否则是上传不上去的。
4、如果你们的应用截图和Metadata信息是运营人员负责编辑和维护的,那么在打包到AppStore时,记得要忽略截图和元数据,否则有可能因为不一致而导致覆盖。skip_metadata:true, #不上传元数据
skip_screenshots:true,#不上传屏幕截图