fastlane is an open-source platform aimed at simplifying Android and iOS deployment. Since it’s the easiest way to build, test, and release mobile apps, it’s become one of the most popular community tools for mobile developers. fastlane lets you automate every aspect of your development and release workflows in simple commands and lanes.
The main features of fastlane are:
- Automating the entire app store deployment process by creating a repeatable custom workflow to build, upload and distribute new releases to the app store, uploading and managing all of your app’s metadata including screenshots and automatically submitting new versions of your app for review.
- Automatic code signing for iOS: by storing the code signing identities and profiles in our own private, encrypted git repository to securely sync them across machines
- Distributing beta builds with support for over 15 beta testing services including TestFlight and Firebase App Distribution Beta.
- Capturing screenshots automatically by generating localized app store screenshots in minutes.You can customize your deployment workflows using the hundreds of community built fastlane actions and plugins.
To get started with fastlane, you can use Homebrew with macOS or Bundler. Before that, you should install and configure Ruby on your machine. fastlane supports Ruby versions 2.5 or newer. More about the setup can be found here.
Now let’s explore together what are the latest fastlane enhancements, bug fixes, and changes and what we should know to update our fastlane actions, plugins, and files.
What’s new in the latest fastlane releases?
From 13 Jan 2022 to 11 Feb 2022, fastlane released different versions from 2.200.0 to 2.204.3, with a variety of changes. We reviewed these versions and collected the most important changes, hot fixes, and improvements:
- Removed xcpretty dependency and added xcbeautify as an option.
- scan no longer relies on xcpretty for JUnit output or to determine success or failure.
- trainer has now been moved inside of fastlane and is no longer needed as a plugin (Added migration error if using fastlane-plugin-trainer and tells the user to remove it from the Gemfile or Pluginfile).
- scan's option for number_of_retries now uses Xcode 13's retry tests (In Xcode 12 will still use fastlane's implementation to try to only rerun tests that have failed).
- Added parallel_testing option to scan.
- Added xcodebuild_formatter option to scan, gym, and snapshot (more info can be found in the Xcode Formatters).
- Migrated deliver to a new API endpoint for review submissions. However, deliver does not support submitting multiple items for review yet (the previous submission API is now deprecated).
- Added an option in match to safely remove certs.
- Identified skipped tests in xcresult and export to Junit format and output in scan.
- Updated development push certificate type ID.
- Fixed compile error on macCatalyst in snapshot.
- Fixed simulator not starting Xcode 13.
- Fixed issues with running on Apple Silicon.
- Fixed bug in string concatenation of verify_build error message.
- Fixed issue when scan failed to zip_build_products for build_for_testing option.
- Fixed crash if no derived data.
All the other updates can be found on the releases page.
Bitrise and fastlane
With Bitrise, you can run your fastlane lanes with the same commands you would use locally. Bitrise’s automated Steps provide extra functionality to your lanes and speed up your builds. In order to meet our customer's expectations and needs, we update and maintain our stack and tools regularly.
Bitrise has an automated Step for running your lanes in the CI/CD pipelines, and there is another step called fastlane Match, which takes care of the code signing your project by cloning your private certificate/profile repository and registering the certificates and profiles in the keychain. For more information, read the guide for Integrating Fastlane into Bitrise.
To learn more, you can also read our previous articles about fastlane:
- Android CI/CD with fastlane
- scale up your iOS automated UI tests
- migrate your iOS app from Jenkins and fastlane to Bitrise
- Automate iOS builds & tests with fastlane