Input not recognised when using Switch Control remotely

Because I support a few friends with their iOS devices, I've been trying to figure the best way to circumvent Apple's limitation of not being able to remotely control iOS, and right now I am THIS close.

The setup is simple. I use Apple Remote Desktop (ARD) to connect to and control my friend's Mac computer, which is USB connected to the iOS device so I can see the screen through QuickTime. From here I talk to my friend on the phone or chat to tell them what they should do as I see exactly what's going on on the screen.

The next level is when I activate this Accessibility feature called Switch Control on the remote Mac, which essentially lets you do actions on a LAN connected iOS device. And just when I thought I worked out my magic, it appears Switch Control won't recognise any keystroke or mouse clic that are not physically performed on the remote computer. Even the onscreen keyboard doesn't work ...damn! If I create a switch button (trigger) remotely, the remote Mac will register it, but neither me or my friend can use the trigger for Switch Control. If the trigger is registered based on a physical input, my friend can use it, but I can't, even through the onscreen keyboard.

So it appears no matter what trigger you register, Switch Control will never recognise remote/virtual input for actual use of the triggers. However, I cannot believe there is no way to simulate that physical input so that Switch Control does listen to my input sent remotely through ARD.

This is the only one single way to remotely control an iOS device in the context of Apple actively not supporting it, and yet just that small little detail prevents it from functioning. I'm basically looking for a way to simulate physical input in a manner that would be recognised by Switch Control.

Note: jailbreak is not an option, and anyway Veency is no longer working as of iOS 12.


I found out myself and I hope it'll be useful to other people. I don't think this has been done before.

You need to use BetterTouchTool to assign your remote input to the local trigger you want to use on the target machine, then go into BTT's preferences and tick the box "Always use the old keyboard implementation" in advanced keyboard settings. Now you have it, Switch Control will finally recognise your remote input and transmit it to your iOS device.

Couple that with QuickTime's ability to display a USB wired device on the target machine, and you can now 'remotely control' that device using ARD or any other Mac-to-Mac remote control app such as iTeleport or AnyDesk. Of course Switch Control is very clanky way to control an iOS device, but at last it's now finally possible!

Thank you Apple for making my life a clanky hack joy. Next time please make an ARD that directly tunnels to iOS.