fastlane
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.
举个例子,在项目根目录创建包含以下内容的Fastfile
文件:
lane :beta do
increment_build_number
build_app
upload_to_testflight
end
lane :release do
capture_screenshots
build_app
upload_to_app_store # Upload the screenshots and the binary to iTunes
slack # Let your team-mates know the new version is live
end
这是两段fastlane的命令集
然后,需要执行哪段命令只需要 操作命令 fastlane beta/release
即可让程序自动有序地执行所有操作。
Getting Started for iOS
Install the latest Xcode command line tools:
xcode-select --install
Install fastlane using
# Using RubyGems
sudo gem install fastlane -NV
# Alternatively using Homebrew
brew cask install fastlane
Navigate to your iOS app and run
fastlane init
fastlane will automatically detect your project, and ask for any missing information.
gz-tankmm:TestForImage tank$ fastlane init
[✔] 🚀
[✔] Looking for iOS and Android projects in current directory...
[12:28:02]: Created new folder './fastlane'.
[12:28:02]: Detected an iOS/macOS project in the current directory: 'TestForImage.xcworkspace'
[12:28:02]: -----------------------------
[12:28:02]: --- Welcome to fastlane 🚀 ---
[12:28:02]: -----------------------------
[12:28:02]: fastlane can help you with all kinds of automation for your mobile app
[12:28:02]: We recommend automating one task first, and then gradually automating more over time
[12:28:02]: What would you like to use fastlane for?
1. 📸 Automate screenshots
2. 👩✈️ Automate beta distribution to TestFlight
3. 🚀 Automate App Store distribution
4. 🛠 Manual setup - manually setup your project to automate your tasks
?
命令执行会生成fastlane文件夹,并需要一步步跟着配置fastlane, 以及根据需求相应地配置该项目设置。
根据用户作出的不同需求选择,会在该文件夹生成不同的配置文件。其中最重要的是fastlane/Fastfile
这个文件,里面包含了所有需要配置项目的信息。
比如以上选择了 1. 📸 Automate screenshots
则会需求手动配置项目:
[12:31:40]: Parsing your local Xcode project to find the available schemes and the app identifier
[12:31:40]: $ xcodebuild -showBuildSettings -workspace TestForImage.xcworkspace -scheme TestForImage
✅ Successfully created SnapshotHelper.swift './fastlane/SnapshotHelper.swift'
✅ Successfully created new Snapfile at './fastlane/Snapfile'
-------------------------------------------------------
Open your Xcode project and make sure to do the following:
1) Add a new UI Test target to your project
2) Add the ./fastlane/SnapshotHelper.swift to your UI Test target
You can move the file anywhere you want
3) Call `setupSnapshot(app)` when launching your app
let app = XCUIApplication()
setupSnapshot(app)
app.launch()
4) Add `snapshot("0Launch")` to wherever you want to trigger screenshots
5) Add a new Xcode scheme for the newly created UITest target
6) Add a Check to enable the `Shared` box of the newly created scheme
这时候可以看到fastlane/Fastfile
长这样的:
里面包含了截图并上传到appstore的相关命令,随后只需要在项目路径下执行fastlane screenshots
就可以自动执行这些操作了。
在配置fastlane的过程中,也会自动在项目根目录下生成Gemfile
以及Gemfile.lock
文件,里面定义了fastlane的版本和依赖,这会提高使用fastlane的速度,这也是官方推荐的。
更多的自动命令集参考 https://docs.fastlane.tools/actions/
自定义动作
除了fastlane官方预置的动作外,更多的是使用自定义的适合自己的动作:
自定义fastlane命令集
这里创建了一个build_qa
的脚本,使用fastlane build_qa
启动执行,进行触发bitrise build qa .ipa的一系列操作。
网友评论