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

# Launch Configuration

> Reusable environment values and ordered iOS arguments applied at app launch

Launch configurations are reusable values applied when Revyl starts your app.
Each named configuration has one type:

* **Environment variable** stores one key-value pair. Android receives it as a
  string Intent extra. iOS receives the compatible `-KEY value` argument pair.
* **iOS argument set** stores an exact ordered list of argument tokens. Revyl
  passes those tokens unchanged to iOS simulators and physical devices. Android
  does not receive them.

## Common Use Cases

* **Auth bypass tokens**: skip OAuth flows by injecting a pre-issued test token, so every test starts authenticated without clicking through a login screen
* **Feature flags**: turn specific features on or off for testing before flipping them for real users
* **Custom testing flags**: enable test-only debug menus, mock data modes, or skip animations for faster, more deterministic runs
* **Environment URLs**: point your app at staging, dev, or a local tunnel without rebuilding
* **API keys and secrets**: credentials your app reads at startup, without baking them into the binary

## Create A Launch Configuration

1. Go to **Library** > **Launch Configurations**.
2. Click **New launch configuration**.
3. Enter a name and choose **Environment variable** or **iOS argument set**.
4. Enter the value, or type launch arguments as one command line:
   `--mode staging --debug`. Quote a value that contains spaces, such as
   `--name "Ada Lovelace"`. The preview under the field shows the exact
   ordered tokens your app receives.
5. Turn on **Secret** for credentials or tokens, then save.

Attach configurations to a test in its **Launch Configuration** section. The
attachment order is significant: Revyl flattens attached argument sets in that
order. Runtime-selected sets follow in flag order, and inline tokens are
appended last. On iOS, all explicit argument tokens precede the legacy `-KEY
value` pairs generated from environment-variable configurations.

Android test and session forms hide iOS argument sets. An Android-only API or
CLI run rejects explicit iOS arguments. A mixed-platform workflow applies them
to iOS children and skips them for Android children.

## Sensitive Values

An environment value or an entire iOS argument set can be marked secret. Revyl
encrypts secret payloads, masks them in the Library and immutable execution
snapshot, and scrubs the individual values or tokens from worker diagnostics.
Secret payloads can only be replaced, not viewed. Non-secret payloads remain
visible in both the Library and the execution report's launch snapshot.

Changing a non-secret variable to secret protects future runs, but does not rewrite report history. Changing a secret variable to non-secret requires a replacement value because Revyl never reveals the existing secret.

## Launch Configuration vs Global Variables

These serve different purposes:

| | Launch Configuration | Global Variables |
| - | - | - |
| **Injected into** | App launch environment or iOS argv | Test step descriptions via `{{var_name}}` |
| **Accessible by** | Your app at runtime | Revyl's test execution engine |
| **Use case** | Auth bypasses, feature flags, testing flags, API keys | Test data, usernames, dynamic values |

## CLI And Session Overrides

Select a stored environment configuration with repeatable `--launch-var` and a
stored iOS argument set with repeatable `--launch-arg-set`. Add exact inline
tokens with repeatable `--launch-arg=<token>`:

```bash theme={null}
revyl device start --platform ios \
  --launch-var API_URL \
  --launch-arg-set AuthTestArguments \
  --launch-arg=--route \
  --launch-arg="sign in"
```

Inline environment values and argument tokens are non-secret. Do not place
credentials in them because they can appear in shell history, process
arguments, and execution reports.

For Expo cloud-agent runs, launch vars pair well with a test-only auth deep link: start `revyl dev` with `--launch-var`, then send the app-specific auth link with `revyl device navigate`. See [Auth Bypass Deep Links](/builds/auth-bypass-deeplinks) for the full flow.


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