> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobster.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# mobster testflight

> List your TestFlight builds and install one on your iPhone.

List your app's TestFlight builds, pick one and install it on your iPhone through the TestFlight app, with an App Store Connect API key kept per project in your Keychain. The build and version go on the next `mobster test` report. Read-only: Mobster submits nothing to Apple.

## Usage

```text theme={"theme":"css-variables"}
mobster testflight <command>
```

```text theme={"theme":"css-variables"}
examples:
  mobster testflight key add --key-id 2X9R4HXF34 --issuer-id <issuer id> --p8 AuthKey_2X9R4HXF34.p8
  mobster testflight list --app com.example.yourapp
  mobster testflight install --app com.example.yourapp --build 87 --device "Test iPhone"
```

## Commands

| Command | What it does |
| - | - |
| [`mobster testflight key`](#mobster-testflight-key) | add, show or remove this project's App Store Connect API key (kept in the Keychain) |
| [`mobster testflight list`](#mobster-testflight-list) | list the app's builds and whether TestFlight can install each, newest first |
| [`mobster testflight install`](#mobster-testflight-install) | install a TestFlight build on your iPhone through the TestFlight app |

## `mobster testflight key`

Keep an App Store Connect API key for this project in your login Keychain, readable only by Mobster's own programs, and never printed. Make one in App Store Connect › Users and Access › Integrations. The key is this project's: a folder with .mobster/ above the current one, or the current folder. `--shared` keeps it for every project instead.

### Arguments and options

| Name | Default | Description |
| - | - | - |
| `{add,show,remove}` | required | add, show or remove |
| `--key-id ID` | none | with add: the key's Key ID |
| `--issuer-id UUID` | none | with add: the Issuer ID (a team key; none for an individual key) |
| `--p8 FILE` | none | with add: the AuthKey\_\<Key ID>.p8 file Apple gave you |
| `--shared` | off | the key every project uses, not this project's |

## `mobster testflight list`

List the app's builds and whether TestFlight can install each, newest first.

### Options

| Name | Default | Description |
| - | - | - |
| `--app BUNDLE` | required | the app's bundle ID |
| `--limit N` | 10 | how many |
| `--json` | off | print JSON |

## `mobster testflight install`

Install the newest installable build, or the one `--build` names, on your iPhone: Mobster opens the app's page in TestFlight and taps Install or Update, then waits for Open. You must be a tester of the app. Mobster never accepts TestFlight's terms for you, never picks from Previous Builds (it prints the taps instead), and after a tap it can't confirm it never taps again.

### Options

| Name | Default | Description |
| - | - | - |
| `--app BUNDLE` | required | the app's bundle ID |
| `--build N` | the newest installable | the build number |
| `--version V` | none | the version the build belongs to, such as 1.4.2 |
| `--device NAME` | your iPhone | the iPhone |
| `--timeout SECONDS` | 600 | how long to wait for TestFlight |
| `--json` | off | print JSON |

```text theme={"theme":"css-variables"}
after it: mobster test --device NAME --testflight BUNDLE, whose report names the build
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.