deliver • snapshot • frameit • pem • sigh • produce • cert • spaceship • pilot • boarding • gym • scan • match
-------This tool allows you to manage all important features of Apple TestFlight using your terminal.
- Upload new builds and distribute them to all testers
- List all available builds
- Add and remove beta testers
- Get information about testers, like the registered devices
- Export and import all your testers
Get in contact with the developer on Twitter: @KrauseFx
pilot
uses spaceship.airforce to interact with iTunes Connect 🚀
Installation • Usage • Tips • Need help?
pilot
is part of fastlane: connect all deployment tools into one streamlined workflow.
sudo gem install pilot
For all commands you can specify the Apple ID to use using -u [email protected]
. If you execute pilot
in a project already using fastlane the username and app identifier will automatically be determined.
To upload a new build, just run
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:
pilot --help
You can pass a changelog using
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:
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.
To list all builds for specific application use
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 |
+-----------+---------+----------+----------+----------+
This command will list all your testers, both internal and external.
pilot list
The output will look like this:
+--------+--------+--------------------------+-----------+
| Internal Testers |
+--------+--------+--------------------------+-----------+
| First | Last | Email | # Devices |
+--------+--------+--------------------------+-----------+
| Felix | Krause | [email protected] | 2 |
+--------+--------+--------------------------+-----------+
+-----------+---------+----------------------------+-----------+
| External Testers |
+-----------+---------+----------------------------+-----------+
| First | Last | Email | # Devices |
+-----------+---------+----------------------------+-----------+
| Max | Manfred | [email protected] | 0 |
| Detlef | Müller | [email protected] | 1 |
+-----------+---------+----------------------------+-----------+
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 necesssary) or add an existing tester to the app to test.
pilot add [email protected]
Additionally you can specify the app identifier (if necessary):
pilot add [email protected] -a com.krausefx.app
To find a specific tester use
pilot find [email protected]
The resulting output will look like this:
+---------------------+---------------------+
| [email protected] |
+---------------------+---------------------+
| First name | Felix |
| Last name | Krause |
| Email | [email protected] |
| 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 |
+---------------------+---------------------+
This command will only remove external beta testers.
pilot remove [email protected]
To export all external testers to a CSV file. Useful if you need to import tester info to another system or a new account.
pilot export
Add external testers from a CSV file. Sample CSV file available here.
pilot import
You can also specify the directory using
pilot export -c ~/Desktop/testers.csv
pilot import -c ~/Desktop/testers.csv
fastlane
Toolchain
fastlane
: Connect all deployment tools into one streamlined workflowdeliver
: Upload screenshots, metadata and your app to the App Storesnapshot
: Automate taking localized screenshots of your iOS app on every deviceframeit
: Quickly put your screenshots into the right device framesproduce
: Create new iOS apps on iTunes Connect and Dev Portal using the command linepem
: Automatically generate and renew your push notification profilessigh
: Because you would rather spend your time building stuff than fighting provisioningcert
: Automatically create and maintain iOS code signing certificatesspaceship
: Ruby library to access the Apple Dev Center and iTunes Connectboarding
: The easiest way to invite your TestFlight beta testersgym
: Building your iOS apps has never been easierscan
: The easiest way to run tests of your iOS and Mac appmatch
: Easily sync your certificates and profiles across your team using git
If you run into any issues you can use the verbose
mode to get a more detailed output:
pilot --verbose
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...
pilot
uses the CredentialsManager from fastlane
.
Please submit an issue on GitHub and provide information about your setup
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.