###### 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 _pilot_ uses [spaceship.airforce](https://spaceship.airforce) to interact with App Store Connect 🚀 -------

UsageTips

-------
pilot is part of fastlane: The easiest way to automate beta deployments and releases for your iOS and Android apps.
# 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_](https://fastlane.tools) the username and app identifier will automatically be determined. ## Uploading builds To upload a new build, just run ```no-highlight 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](https://fastlane.tools). You'll be asked for any missing information. Additionally, you can pass all kinds of parameters: ```no-highlight fastlane action pilot ``` You can pass a changelog using ```no-highlight 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: ```no-highlight 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_](https://spaceship.airforce) to submit the build metadata and the iTunes Transporter to upload the binary. Because iTunes Transporter's upload capability is only supported on OS X, `pilot upload` does not work on Linux, as described [in this issue](https://github.com/fastlane/fastlane/issues/5789) ## List builds To list all builds for specific application use ```no-highlight fastlane pilot builds ``` The result lists all active builds and processing builds: ```no-highlight +-----------+---------+----------+ | Great App Builds | +-----------+---------+----------+ | Version # | Build # | Installs | +-----------+---------+----------+ | 0.9.13 | 1 | 0 | | 0.9.13 | 2 | 0 | | 0.9.20 | 3 | 0 | | 0.9.20 | 4 | 3 | +-----------+---------+----------+ ``` ## Managing beta testers ### List of Testers This command will list all your testers, both internal and external. ```no-highlight fastlane pilot list ``` The output will look like this: ```no-highlight +--------+--------+--------------------------+-----------+ | 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 App Store 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. ```no-highlight fastlane pilot add email@invite.com ``` Additionally you can specify the app identifier (if necessary): ```no-highlight fastlane pilot add email@email.com -a com.krausefx.app ``` ### Find a tester To find a specific tester use ```no-highlight fastlane pilot find felix@krausefx.com ``` The resulting output will look like this: ```no-highlight +---------------------+---------------------+ | 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. ```no-highlight 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. ```no-highlight fastlane pilot export ``` ### Import testers Add external testers from a CSV file. Create a file (ex: `testers.csv`) and fill it with the following format: ```no-highlight John,Appleseed,appleseed_john@mac.com,group-1;group-2 ``` ```no-highlight fastlane pilot import ``` You can also specify the directory using ```no-highlight fastlane pilot export -c ~/Desktop/testers.csv fastlane pilot import -c ~/Desktop/testers.csv ``` # Tips ## Debug information If you run into any issues you can use the `verbose` mode to get a more detailed output: ```no-highlight 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 ```no-highlight DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS="-t DAV" pilot ... ``` If you are using _pilot_ via the [fastlane action](https://docs.fastlane.tools/actions#pilot), add the following to your `Fastfile` ```no-highlight 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](https://github.com/fastlane/fastlane/tree/master/credentials_manager) from _fastlane_. ## Provider Short Name If you are on multiple App Store Connect teams, iTunes Transporter may need a provider short name to know where to upload your binary. _pilot_ will try to use the long name of the selected team to detect the provider short name. To override the detected value with an explicit one, use the `itc_provider` option.