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

# Signing and devices

> What the first run asks for, how new developers get set up, and how to keep your phone connected.

Roveflow puts a small driver on your phone so it can tap through apps. Setting that up is a one-time thing, and it's simpler than it sounds.

## The first run

`roveflow setup` detects whether an iPhone or an Android phone is plugged in, and asks for one thing.

**iPhone**, two clicks:

<Steps>
  <Step title="Click Allow on your Mac">
    A popup appears once. Click **Allow**, it lets Roveflow set up your phone.
  </Step>

  <Step title="Enter your passcode">
    Your iPhone asks for its passcode once. Type it in.
  </Step>
</Steps>

<Note>
  Your signing identity never leaves your Mac. Roveflow uses it in place and never copies it out.
</Note>

**Android**, one tap: when the phone shows **Allow USB debugging**, tap it. No signing, nothing installed on your Mac.

That's it either way. Nothing to configure, no files to edit.

## New to iOS dev? (iPhone)

If you've never built an app onto this iPhone before, do this once:

1. Open **Xcode → Settings → Accounts** and add your Apple ID, a free one works.
2. Plug in the iPhone, pick it as the run target, and Run any app to it once. Xcode sets up the phone for you.
3. Run `roveflow setup` again.

To see which signing identity Roveflow will use:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
roveflow keygen
```

## Android: turn on USB debugging

Android needs no signing, just enable USB debugging once:

1. **Settings → About phone** → tap **Build number** seven times.
2. **Settings → System → Developer options** → turn on **USB debugging**.
3. Run `roveflow setup` and tap **Allow USB debugging** on the phone.

Testing on an **emulator**? Launch it with `-gpu host` so screenshots aren't blank (the default headless GPU captures black frames). Everything else works just like a real device.

## Keep your phone ready

For Roveflow to drive your phone, the phone must be:

* **Plugged in** with a USB cable.
* **Unlocked** while it's connected.

Check everything's connected any time:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
roveflow doctor
```

## Starting over

If you ever want to remove the driver from your phone:

```bash theme={"theme":{"light":"github-light","dark":"github-dark"}}
roveflow uninstall
```

Run `roveflow setup` again whenever you want to set it back up.
