Shawn Mervin

fastlane

An open source tool for automating app store releases, and the last step in shipping Rental Pilot's iPhone app.

Visit fastlane.toolsOn the phone

What it is

fastlane is an open source tool for automating the build and release of iOS and Android apps. It wraps the repetitive steps, such as code signing, building, taking screenshots, uploading to TestFlight and submitting to the App Store or Google Play, into scripted steps called actions. The tool also handles certificates and provisioning profiles, a frequent source of release-day trouble.

Actions are grouped into lanes, defined in a file called a Fastfile. A lane such as beta or release can then be run with one command, the same way every time. fastlane is written in Ruby. Because a lane is plain code, it can be kept in version control beside the app and reviewed like any other change, so the release process has a history too.

How I use it

  • iOS releases of Rental Pilot's field app go to TestFlight and the App Store with fastlane lanes.
  • Builds come from Expo EAS; fastlane handles the hand-off to Apple.
  • Fits the rule that anything I do twice becomes a script with its own checks.

fastlane is the right tool when app store releases happen often enough that doing them by hand becomes a source of mistakes. I reach for it because I would rather release by running one lane than by clicking through the same upload screens and hoping I did not skip a step.

Questions

How do you release iPhone app updates?

Rental Pilot's app is built with Expo EAS, then fastlane lanes send it to TestFlight for testing and on to the App Store. Each release follows the same scripted steps.

Do I need fastlane if I use Expo?

Not always, since EAS can submit builds itself. I use fastlane lanes for the iOS release steps so they run the same way every time.

Working with fastlane?

Tell me what you're building. Start a project or see the whole stack.

Got an operation that's outgrown its spreadsheets?

Tell me what your business does and where it's jamming up. If I'm not the right person for it, I'll say so and point you somewhere better.

What to send, and what happens next