Documentation Index
Fetch the complete documentation index at: https://docs.signalrooms.xyz/llms.txt
Use this file to discover all available pages before exploring further.
iPhone lanes
Status: Current setup reference for customer-owned physical iPhones.
An iPhone lane is one physical device connected to the Mac host. SignalRoom is always customer-owned hardware, there is no rented or hosted lane option. Get the hardware right once and you’ll save yourself most of the “session randomly disconnected” support cases.
1. Supported iPhone models
| Support level | Models | iOS |
|---|
| Recommended | iPhone 13 / 14 / 15 / 16 (any variant) | iOS 17.x – 18.x |
| Minimum | iPhone 12 / 12 mini / 12 Pro / 12 Pro Max | iOS 17.0+ |
| Limited support | iPhone 11 / 11 Pro / 11 Pro Max | iOS 17.0+, works, but on-screen rendering is slower; activity workflows take longer |
| Not supported | iPhone X / XS / XR / SE 1st gen / 8 / 7 and older | iOS 16 and below |
Storage
- Minimum: 5 GB free.
- Recommended: 15+ GB free, to leave room for TikTok, iOS updates, and prepared media.
A near-full iPhone produces upload errors that look like network problems but aren’t, always check free space before debugging anything else.
2. USB cable
- Use the original Apple cable or an MFi-certified Lightning or USB-C cable.
- Generic uncertified cables are the single most common cause of mid-session disconnects.
- Wi-Fi is not a substitute. The cable is required at all times, automation runs over USB.
If a lane drops mid-session and the iPhone has plenty of battery, swap the cable before swapping anything else.
3. USB hubs and power
| Device count | Hub | Notes |
|---|
| 1 | None / unpowered | A single iPhone runs fine from a free USB port on the Mac. |
| 2–5 | Powered or unpowered | Modern Macs deliver enough sustained current. Powered hub recommended on long sessions. |
| 6+ | Powered required | Without a powered hub, devices randomly drop off the bus under load. |
| 12+ | Multiple powered hubs | Split across hubs, 6–8 devices per hub. |
Each iPhone needs a USB 2.0 (or better) port that can sustain 500 mA. A “powered” hub is one with its own AC adapter, bus-powered hubs do not count.
4. Network
- Stable internet on the Mac host. 100 Mbps is plenty for any fleet size; latency matters more than peak bandwidth.
- The iPhones themselves do not need Wi-Fi, they communicate through the Mac over USB.
- If you assign per-account proxies, those run on the iPhone via Shadowrocket or Stash. See the per-account proxy guide for setup.
5. Lane model
Warmr discovers iPhones through go-ios and represents each as a lane with these fields (from warmrctl --json devices list):
| Field | Meaning |
|---|
udid | Stable iPhone identifier. Use this in scripts, never displayName. |
displayName | Human-readable name (“Lane 2. Kody”). |
modelName | iPhone model. |
iosVersion | iOS version string. |
isConnected | Whether the device is currently visible over USB. |
assignedPort | Local port for the device’s lane, when assigned. |
rodmanInstalledVersion | Version of the on-device test runner, when known. |
Lane ownership
- Exactly one active Warmr instance can own a given lane at a time. Running two Warmr instances against the same iPhone produces wedged lanes that require an
app restart to clear.
- A lane shows up as
isConnected: false if the cable is loose, the trust prompt was dismissed, or another process (Xcode, iTunes, Finder’s iPhone view) has claimed the device.
- See Device state model for the full set of fields.
6. Pre-flight check
After plugging an iPhone in for the first time:
warmrctl --json devices list
The new device should appear with isConnected: true. If it doesn’t:
| Symptom | Try this |
|---|
| Device not listed at all | Reconnect the cable. Confirm the “Trust This Computer?” prompt on the iPhone. |
Listed with isConnected: false | Unlock the iPhone, re-confirm trust, replug. |
Listed but rodmanInstalledVersion is missing | Runner isn’t installed yet, see Trust and runner setup. |
| Disconnects randomly under load | Swap the cable, then move to a powered hub. |
Related setup pages
Planned
Planned:
- Lane readiness checklist with explicit “ready / blocked” decision tree.
- Recovery guidance for missing trust, missing runner, and stale device state.