SimFriend documentation
SimFriend is a Mac front end for the iOS Simulator. It lists every simulator on your machine, boots them, and gives you a live screen you can click and type into — without running Simulator.app.
The thing worth knowing up front: SimFriend does not replace the simulators, it drives the ones you already have. They come from Xcode, they run the same way, and anything you install or change in them is still there in Simulator.app afterwards.
Installation
SimFriend is a standard .dmg — open it and drag SimFriend.app to your Applications folder. It is free, with no trial and nothing to buy.
It is not on the Mac App Store and will not be. SimFriend reaches into the private frameworks Simulator.app itself is built on, which the store does not permit — so the download here is the only version there is.
What it needs
macOS 13 Ventura or later, and Xcode with at least one simulator runtime installed. If SimFriend shows No simulators found, install a runtime in Xcode’s Platforms settings and relaunch.
SimFriend finds Xcode through xcode-select. If Xcode has moved, or you have several, point xcode-select at the one you want and relaunch.
Only iPhone and iPad simulators are listed. Apple Watch, Apple TV and Vision Pro are deliberately left out — the framing, rotation and touch mapping all assume a device that turns.
Quick start
- Pick a device in the sidebar.
- Click play on its row to boot it. The screen appears when it is ready.
- Click and type as you would on the device itself.
That is the whole loop. Everything below is what is there when you want more than that.
The sidebar
Every iPhone and iPad CoreSimulator knows about, grouped by runtime, with booted devices floated to the top of each group. The dot on the left is green when a device is running.
Hover a row for its play or stop button. Right-click for boot, shut down, and Copy UDID — useful when you want to point a script or simctl at the same device.
Favourites
Click the star on any row to pin that device to a Favorites section at the top, flattened across runtimes. A favourite appears twice — once under Favorites and once under its runtime — and selecting either highlights the one you clicked, with its counterpart faintly tinted so you can see they are the same device.
All Booted
With more than one device running, an All Booted row appears above everything else. It shows every booted device at once, live, in a grid.
Commands there apply to every booted device. Rotate, appearance, the status bar, the software keyboard, screenshots, sending the clipboard — all of them go to the whole set. The menu wording says so: Save Screenshot of Every Device rather than Save Screenshot.
Two things stay per-device. Clicking a screen touches that device only, since a click is aimed at something. And each cell has its own rotate controls, either side of the device name, which appear when you hover it.
A few commands are unavailable in the grid, because they cannot mean anything for a set: copying a screenshot to the clipboard, popping a screen out, fetching the device clipboard, and recording.
The slider along the bottom sets how large each device is drawn.
The live screen
The screen is the simulator’s own framebuffer, handed to the window server — not a stream of screenshots, so it stays smooth and costs almost nothing.
Click, drag and scroll as you would on the device. If the live path is unavailable on your Xcode, SimFriend says so in a banner and falls back to polling screenshots, which is slower but keeps everything else working — input does not depend on it.
Hardware buttons
Home, Lock, Side Button and Apple Pay are on the toolbar and in the Device menu. Home has a shortcut, ⇧⌘H; the rest stay menu-only rather than spending more key combinations.
There is deliberately no Siri button. Sending one crashes the simulator — a fault in the guest, not in SimFriend — so it is left out rather than offered as a way to lose your session.
Rotation
⌘→ turns the device clockwise and ⌘← counter-clockwise, matching the arrows. The device keeps its size as it turns, so nothing jumps around, and taps and drags keep landing where you aim them.
Each device remembers its own rotation, so switching away and back does not reset it. Booting one afresh starts it upright, as a real device would.
Typing and the software keyboard
Type and the keystrokes go to the device. ⌘-anything stays with SimFriend, so the menu shortcuts still work.
⌘K shows the on-screen keyboard. There is no switch for this on a real device either — what it actually does is disconnect the hardware keyboard, which is what makes iOS put its own one up. While it is up the device stops taking keystrokes from the Mac, exactly as a real device does.
Pinch and the touch cursor
Pinch on a trackpad to pinch on the device, or hold ⇧ and drag with a mouse. Two contacts is the most the simulator will accept — that is the guest’s limit, and the reason Simulator.app offers no wider gesture either.
⇧⌘T draws each contact as a circle the size of a fingertip on the device and hides the arrow, which is worth turning on for demos and recordings. The Touch Fingers setting beside it chooses whether a click puts down one contact or two.
Screenshots
⌘S saves one immediately — no dialog — into the folder set in Settings, named for the device and stamped with the time.
⇧⌘S captures the same screen in both appearances and restores whichever the device was in. The two files share one timestamp so they sort together as a pair. In All Booted this covers every device at once, and takes about as long as it does for one.
⇧⌘C puts the screen on the clipboard instead, and holding ⌥ while dragging the screen lifts it out as a PNG you can drop straight into another app.
The clean status bar
⌃⌘S overrides the status bar with 9:41, full bars, full battery and no carrier — the one App Store screenshots want. The same shortcut puts the real one back.
SimFriend reads the current state when you select a device, so an override left in place from a previous session shows correctly.
Recording
⇧⌘R starts and stops a screen recording, saved beside your screenshots. By default the corners are square and nothing is masked out, which is easier to composite; Settings can round them instead.
A recording takes its orientation from when it started. Turning the device mid-clip is not something one video can describe, so it is left alone rather than made worse.
Clipboard sync
On by default. Copy on the Mac and paste on the device, or the other way round — images included.
The device has no way to announce that its clipboard changed, so SimFriend reads it once a second while it is the frontmost app, and once more as you switch away. That covers copying something on the device and going elsewhere to paste it, without polling in the background all day.
One gap follows from that: an image copied inside the simulator is only noticed on demand. Copy Clipboard from Device (⌥⌘C) fetches it. Send Clipboard to Device (⇧⌘V) pushes the other way, and in the grid it goes to every device.
Dropping files in
Drag onto the screen and SimFriend works out what you meant:
- An
.appbundle is installed. It must be a simulator build — a device build will be refused. - Photos, live photos, videos and vCards go into the device’s library.
- Anything else goes to an installed app that says it can open it, landing in that app’s documents. A
.picpilelands in PicPile, and so on.
If nothing can take a file, the message says why rather than just refusing. Dropping onto All Booted does it on every booted device.
Popping the screen out
⌥⌘P moves the screen into its own chromeless window — just the device, no title bar — which is what you want for a recording or a presentation.
With no title bar to grab, ⌘-drag moves it, and Esc or ⌘W closes it. Right-click for everything else, including preset widths and centring it on screen.
Keyboard shortcuts
| ⇧⌘H | Home |
| ⌘← / ⌘→ | Rotate left / right |
| ⌘K | Show or hide the software keyboard |
| ⇧⌘A | Switch between light and dark |
| ⇧⌘T | Show or hide the touch cursor |
| ⇧⌘V | Send the clipboard to the device |
| ⌥⌘C | Copy the device’s clipboard |
| ⌃⌘S | Clean status bar on or off |
| ⌘S | Save a screenshot |
| ⇧⌘S | Save a light and dark pair |
| ⇧⌘C | Copy a screenshot to the clipboard |
| ⇧⌘R | Start or stop recording |
| ⌥⌘P | Pop the screen out, or bring it back |
Languages
SimFriend is available in English, German, Spanish, French, Italian, Japanese, Korean, Portuguese (Brazil), Russian, Ukrainian and Simplified Chinese. It follows your Mac’s language; to run it in another one, set it under System Settings ’ General ’ Language & Region ’ Applications.
Updates
SimFriend checks for updates on its own and offers them when they appear. You can also check any time from Check for Updates… in the SimFriend menu.
Privacy
SimFriend talks to the simulators on your own Mac and nothing else. There is no account, no analytics, and no data leaves your machine — the only network request it makes is checking its own update feed.