Introduction to fastlane for iOS
Code signing with fastlane
- PDF for offline use
- Related Links:
Let us know how you feel about this
last updated: 2017-01
This guide introduces the various fastlane tools that can be used to code sign iOS applications
fastlane is an open source project, created to simplify the confusing and often tedious process of releasing iOS and Android apps. It comprises of several utilities that each handle a specific aspect of app release, such as:
- deliver – Manages and uploads screenshots, metadata, and application bundles to iTunes Connect.
- produce – Creates and app in iTunes Connect and the Developer Portal (often known as AppID). It also includes support for App Groups and application services.
- pem – Creates and manages Push Notification Provisioning Profiles.
- gym – This can be used to build and sign an iOS application. (Xamarin apps already use MSBuild to build, sign, and archive apps)
- cert – Creates and manages code signing certificates
- sigh – Creates and manages provisioning profiles
- match – Creates and maintains certificates and profiles and stores them in a git repository so that they can be synced across a development team.
fastlane can be used in different ways: through terminal commands, through file based means, or by using environment variables for continuous integration builds.
This guide deals specifically with setting up a device for development with iOS apps, and focuses on the cert, sigh and match utilities. The content provided can be used as a springboard to aid with app distribution, including fully automating the process on a continuous integration server. For more information on using fastlane, additional tools, or releasing for Android using fastlane, refer to https://fastlane.tools/
Make sure that Xcode command line tools are installed on the macOS machine. To install the tools, use the command
xcode-select –installin Terminal. If they are already installed, the following error will be displayed:
error: command line tools are already installed, use "Software Update" to install updates.
Download the fastlane tools from https://download.fastlane.tools.
It is possible to install fastlane tools from Homebrew using
brew cask install fastlaneor via Rubygems (2.0 or above) using
sudo gem install fastlane –NV. However using the installer will ensure that the correct dependencies are available.
Install fastlane by unzipping the file, and double-click on the install executable.
which fastlanebefore using fastlane for the first time. The path should look like the following:
If the path matches the above, you're ready to get started. If not, do the following: On macOS open
.bash_profile, which is a hidden plaintext file in the home directory, with the following command:
Add the following PATH environment variable, and save it:
which fastlaneagain, to confirm the path looks like
fastlane is a very active open source project that regularly pushes new releases. When a new version of fastlane is available, you will be advised when you run any fastlane command:
To update to a new version of fastlane, download the latest package from here and double-click on the install package to run it:
This series of guides presents some of the tools that fastlane uses for code signing your iOS app in preperation for development or distribution. The tools currently covered are:
cert and sigh deal with creating and managing signing certificates and provisioning profiles on a local machine. match takes this process a step further. It creates and manages certificates and provisioning profiles, and stores them in a git repository, allowing them to be accessible by all members of a development team. Read through each section to find out how they work and how you can use them.
Using fastlane tools with Xamarin
Selecting bundle signing options in Xamarin Studio should require no additional work on your part, providing that the certificates and private keys are in the macOS Keychain and that provisioning profiles are in the folder
To set the code signing options for a Xamarin.iOS application, right-click on the project name, select Project Options > Build > iOS Bundle Signing and set the Signing Identity and Provisioning Profile explicitly, as demonstrated below: