Find file History
Latest commit 0d94870 Jan 10, 2017 @KrauseFx KrauseFx committed on GitHub Update StackOverflow and RubyGems links to use https (#7795)
* Update all RubyGems to https

* Update all StackOverflow links to https

README.md


fastlane

deliversnapshotframeitpemsighproducecertspaceshippilotboardinggymscanmatch


Pilot

Twitter: @FastlaneTools License Gem

The best way to manage your TestFlight testers and builds from your terminal

Pilot makes it easier to manage your app on Apple’s TestFlight. You can:

  • Upload & distribute builds
  • Add & remove testers
  • Retrieve information about testers & devices
  • Import/export all available testers

Get in contact with the developer on Twitter: @FastlaneTools

pilot uses spaceship.airforce to interact with iTunes Connect 🚀


InstallationUsageTipsNeed help?


pilot is part of fastlane: The easiest way to automate beta deployments and releases for your iOS and Android apps.

Installation

sudo gem install fastlane

Usage

For all commands you can specify the Apple ID to use using -u felix@krausefx.com. If you execute pilot in a project already using fastlane the username and app identifier will automatically be determined.

Uploading builds

To upload a new build, just run

fastlane pilot upload

This will automatically look for an ipa in your current directory and tries to fetch the login credentials from your fastlane setup.

You'll be asked for any missing information. Additionally, you can pass all kinds of parameters:

fastlane pilot --help

You can pass a changelog using

fastlane pilot upload --changelog "Something that is new here"

You can also skip the submission of the binary, which means, the ipa file will only be uploaded and not distributed to testers:

fastlane pilot upload --skip_submission

pilot does all kinds of magic for you:

  • Automatically detects the bundle identifier from your ipa file
  • Automatically fetch the AppID of your app based on the bundle identifier

pilot uses spaceship to submit the build metadata and the iTunes Transporter to upload the binary.

List builds

To list all builds for specific application use

fastlane pilot builds

The result lists all active builds and processing builds:

+-----------+---------+----------+----------+----------+
|                   Great App Builds                   |
+-----------+---------+----------+----------+----------+
| Version # | Build # | Testing  | Installs | Sessions |
+-----------+---------+----------+----------+----------+
| 0.9.13    | 1       | Expired  | 1        | 0        |
| 0.9.13    | 2       | Expired  | 0        | 0        |
| 0.9.20    | 3       | Expired  | 0        | 0        |
| 0.9.20    | 4       | Internal | 5        | 3        |
+-----------+---------+----------+----------+----------+

Managing beta testers

List of Testers

This command will list all your testers, both internal and external.

fastlane pilot list

The output will look like this:

+--------+--------+--------------------------+-----------+
|                    Internal Testers                    |
+--------+--------+--------------------------+-----------+
| First  | Last   | Email                    | # Devices |
+--------+--------+--------------------------+-----------+
| Felix  | Krause | felix@krausefx.com       | 2         |
+--------+--------+--------------------------+-----------+

+-----------+---------+----------------------------+-----------+
|                       External Testers                       |
+-----------+---------+----------------------------+-----------+
| First     | Last    | Email                      | # Devices |
+-----------+---------+----------------------------+-----------+
| Max       | Manfred | email@email.com            | 0         |
| Detlef    | Müller  | detlef@krausefx.com        | 1         |
+-----------+---------+----------------------------+-----------+

Add a new tester

To add a new tester to both your iTunes Connect account and to your app (if given), use the pilot add command. This will create a new tester (if necessary) or add an existing tester to the app to test.

fastlane pilot add email@invite.com

Additionally you can specify the app identifier (if necessary):

fastlane pilot add email@email.com -a com.krausefx.app

Find a tester

To find a specific tester use

fastlane pilot find felix@krausefx.com

The resulting output will look like this:

+---------------------+---------------------+
|            felix@krausefx.com             |
+---------------------+---------------------+
| First name          | Felix               |
| Last name           | Krause              |
| Email               | felix@krausefx.com  |
| Latest Version      | 0.9.14 (23          |
| Latest Install Date | 03/28/15 19:00      |
| 2 Devices           | • iPhone 6, iOS 8.3 |
|                     | • iPhone 5, iOS 7.0 |
+---------------------+---------------------+

Remove a tester

This command will only remove external beta testers.

fastlane pilot remove felix@krausefx.com

Export testers

To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account.

fastlane pilot export

Import testers

Add external testers from a CSV file. Sample CSV file available here.

fastlane pilot import

You can also specify the directory using

fastlane pilot export -c ~/Desktop/testers.csv
fastlane pilot import -c ~/Desktop/testers.csv

Tips

fastlane Toolchain

  • fastlane: The easiest way to automate beta deployments and releases for your iOS and Android apps
  • deliver: Upload screenshots, metadata and your app to the App Store
  • snapshot: Automate taking localized screenshots of your iOS app on every device
  • frameit: Quickly put your screenshots into the right device frames
  • produce: Create new iOS apps on iTunes Connect and Dev Portal using the command line
  • pem: Automatically generate and renew your push notification profiles
  • sigh: Because you would rather spend your time building stuff than fighting provisioning
  • cert: Automatically create and maintain iOS code signing certificates
  • spaceship: Ruby library to access the Apple Dev Center and iTunes Connect
  • boarding: The easiest way to invite your TestFlight beta testers
  • gym: Building your iOS apps has never been easier
  • scan: The easiest way to run tests of your iOS and Mac app
  • match: Easily sync your certificates and profiles across your team using git
Like this tool? Be the first to know about updates and new fastlane tools

Debug information

If you run into any issues you can use the verbose mode to get a more detailed output:

fastlane pilot upload --verbose

Firewall Issues

pilot uses the iTunes Transporter to upload metadata and binaries. In case you are behind a firewall, you can specify a different transporter protocol from the command line using

DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV" pilot ...

If you are using pilot via the fastlane action, add the following to your Fastfile

ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t DAV"
pilot...

Credentials Issues

If your password contains special characters, pilot may throw a confusing error saying your "Your Apple ID or password was entered incorrectly". The easiest way to fix this error is to change your password to something that does not contains special characters.

How is my password stored?

pilot uses the CredentialsManager from fastlane.

Need help?

Please submit an issue on GitHub and provide information about your setup

Code of Conduct

Help us keep pilot open and inclusive. Please read and follow our Code of Conduct.

License

This project is licensed under the terms of the MIT license. See the LICENSE file.

This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.