Workshop: Engineering RemoteXPC: Building Wireless iOS Automation with Appium
summary
Workshop shows a Node.js RemoteXPC client (appium-ios-remotexpc) that replaces USB-only iOS automation with a per-device TLS tunnel and virtual TAP, exposing 20+ device services for screenshots, location, battery, file AFC and installs; demos pair+trust over USB, start a tunnel, unplug and run location, screenshot, battery, app install and rotate wirelessly — all working live. Requirements include iOS 17.4+, one-time first pair over USB, sudo to create the tunnel, and Windows/Linux hosts supported.
AI-written summary · about
chapters (52)
- 0:00Workshop Opens - Engineering RemoteXPC for Wireless iOS Automation
- 1:36Speaker Intros - Swastik Baranwal and Naveen Chandra, Open Source Engineers, TestMu AI
- 2:08Agenda: Why RemoteXPC, Device Lab Constraints, Tunnels, iPhones on Windows
- 4:13What RemoteXPC Is and Why It Was Needed
- 4:44Life Before iOS 17: usbmuxd, lockdown and a Cable Per Device
- 6:21iOS 17 Moved Services Behind CoreXPC and Everything Broke
- 7:23Building a Node.js RemoteXPC Client for the Appium Ecosystem
- 7:54The XCUITest Driver Auto-Switches Protocol - Your Scripts Don't Change
- 8:54An Apache-Licensed Library Exposing 20+ Device Services
- 9:28RemoteXPC Works Over USB Too, Not Just Wi-Fi
- 10:24Device Lab Constraints: Cables That Wear, Hubs That Saturate
- 11:57Host Constraints: A Mac Per Rack and Limited Observability
- 12:58The First USB Connection: Pairing and the Trust Prompt
- 14:01Why That First Pair Record Is a Security Requirement
- 15:03How the Tunnel Works: CoreDeviceProxy, TLS, IPv6 and RSD Ports
- 16:04One Tunnel Per Device, Selectable by UDID
- 16:34Where RemoteXPC Sits Inside the Appium Stack
- 17:05iOS TunTap: The Virtual Wire, and Why It Differs Across OSes
- 18:09Going Wireless: Watching the Connection Type Change to Network
- 19:43Demo 1: Pair, Trust, Unplug and Start a Wireless Tunnel
- 20:46Prerequisites and Cloning the Sample Repo
- 24:23Live: Plugging In, Trusting the Computer, Creating the Pair Record
- 26:59Starting the Tunnel Over USB for the First Time
- 29:14Unplug and Rerun - The Tunnel Starts With No Cable
- 30:14The Finder Checkbox You Must Not Miss
- 31:14Listing the Services the Device Broadcasts
- 32:18Common Wireless Issues and the Built-In Net Check Script
- 34:21macOS and Windows Specific Fixes for Rotated IPs
- 35:25The 20+ Services: Observe, Control, Apps and Files
- 36:27Location Simulation, Condition Inducer and Network Throttling
- 38:31Developer Disk Images and Why Core Device Services May Not Appear
- 40:04Demo: Simulating a GPS Location Live and Wirelessly
- 41:35Diagnostics: Reboot, Sleep, Battery and Device Rotation
- 43:06Files and Apps: AFC, House Arrest, Installation Proxy, Zip Conduit
- 45:10DVT Instruments: Screenshots, Energy and Condition Inducing
- 47:41The Tunnel Registry API and Dynamic Port Mapping
- 50:16Live Demos: Location, Screenshot, Battery, App List, Rotate
- 53:51Taking a Screenshot Over the Air
- 57:03Battery Diagnostics: Cycle Count, Temperature, Charge State
- 59:40Listing and Launching Installed Apps
- 1:04:18Rotation and the Pasteboard Service
- 1:08:23Apple TV Over Wi-Fi Without Any USB Port
- 1:08:53The Big One: iPhones on Windows, Wirelessly
- 1:10:25Pairing From Windows Using the Apple Devices App
- 1:11:31Live Windows Demo: Trust, Unplug, Start the Tunnel
- 1:15:07Running Location Simulation and Battery Checks From Windows
- 1:17:13XCUITest Driver Integration - No Xcode Required
- 1:18:44Limitations: iOS 17.4+, First Pair Over USB, Sudo, Device Lock, Wi-Fi Quality
- 1:20:16Key Takeaways: No More Cables, No More Mac Per Rack
- 1:21:46Q&A: Reconnecting a Device Without Re-Pairing
- 1:24:57Q&A: Collecting Performance Metrics Remotely
- 1:25:57Q&A: Packet Fragmentation and Flow Control Across Tunnels
related talks
28mControlling apples with snakes: Automating mobile apps with Appium
24mAutomated Mobile E2E Testing
46mExecute Appium iOS tests inside Linux containers
52mBuilding an Advanced Automation Solution Based on Appium
46mMy Journey with Appium
46mHow we took Appium to 11 platforms
57mAppium: Automation for Apps
46m6 Years of Appium
