Removing Xcode Simulator Touch Indicators

I’ve been working on creating new Muse onboarding and tutorial videos, and I’m using my HandShadows Swift package to show the gestures visually during the video. Muse is a gesture heavy app, and showing plain dots for the finger locations doesn’t always make it clear what’s actually happening. These shadows make each gesture much more clear.

To record these demos, I’m using Screenflow, a wonderfully simple screen recorder and video editor.

For reasons beyond my understanding, I found that using Screenflow to record the simulator gave higher quality video than using the Simulator’s built in Record Screen functionality. Similarly, it’s better quality than recording the screen directly on the iPad as well.

I’ll have to eventually solve the quality problem, as it’s not currently possible to perform two simultaneous gestures on the simulator. For those future demo videos that do use simultaneous gestures, I’ll need to record directly on the iPad, but until then the simulator works great.

However! By default, the simulator shows two dots for the touch points of a two finger gesture. I’m using HandShadows precisely to not show touch points, so I needed a way to either edit these points out or turn them off entirely.

Luckily, there is are a few hidden user defaults for the Simulator to toggle touch points. I found the first one through Aman Mittal’s blog post about turning on the touch point for single touch gestures. To do that, you can do the following:

defaults write com.apple.iphonesimulator ShowSingleTouches 1

This turns touch points on for a single finger, which is very useful if you’re using the simulator’s touch indicators for videos, but in my case I wanted to turn them all off.

I asked colleagues if they knew any other hidden simulator defaults, and one suggested to run strings on the simulator executable and see what came up. So that’s just what I did:

strings /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator | grep Show

And what appears? Hope!

...
ShowSingleTouches
ShowPinches
ShowPinchPivotPoint
...

And sure enough, toggling the ShowPinches removes the two finger gesture touch points from the simulator!

defaults write com.apple.iphonesimulator ShowPinches 0

And an interesting 3rd option too: ShowPinchPivotPoint. Let’s see what the simulator looks like with all of these turned on:

defaults write com.apple.iphonesimulator ShowSingleTouches 1
defaults write com.apple.iphonesimulator ShowPinches 1
defaults write com.apple.iphonesimulator ShowPinchPivotPoint 1

When toggling these settings from the command line, it seems that the Simulator app needs to be completely quit and restarted before they take effect.

These settings are a very helpful new tool in the toolbox!