What you need before you start
Three things, and none of them is a download you have to hunt for. Windows cannot see an iPhone at all until Apple's own software is installed; on a Mac that layer is part of the system, which removes the most common failure of this procedure.
- macOS 11 Big Sur or later, on Apple Silicon. The Mac build is arm64 and runs natively on any M-series Mac. There is no Intel build.
- An iPhone or iPad running iOS 16 or newer, with Developer Mode switched on. Older versions work too and have no Developer Mode toggle at all.
- A data cable. The one that came with the phone is fine. Some very cheap third-party cables carry power and nothing else, and a phone that charges happily but never appears on the Mac is almost always that.
macOS includes usbmuxd, the service that multiplexes connections to a
connected iPhone. It is what Finder uses to back a phone up and what Xcode uses to
install a build. Draftpin reaches the device through the same service, so on a Mac
there is no equivalent of the Apple Devices app that Windows requires.
The procedure
-
Turn on Developer Mode on the phone
On iOS 16 and newer: Settings → Privacy & Security → Developer Mode, switch it on, and restart the phone when it asks. The menu item only appears after the phone has been connected to a computer running developer tooling at least once, which is what sends most people looking for a setting that is not there yet, so plug in first and then look. The full walkthrough, including the case where the toggle is missing.
-
Download Draftpin and drag it to Applications
Get the Mac build, open the disk image, and drag the app to Applications in the usual way rather than running it from inside the mounted image.
-
Open it
Double-click. There is no right-click dance and no Terminal command: the Mac build is signed and notarised, so Gatekeeper clears it and gets out of the way. What that means, and how to check it yourself.
-
Plug the phone in and tap Trust
Connect the cable and unlock the phone. If this Mac has never been paired with it, the phone asks whether to trust the computer; tap Trust and enter the passcode. Draftpin finds the device on its own. There is no pairing step in the app and nothing to configure.
-
Pick where you want to be
Three ways, all equivalent. Type a place name into the search box and choose it from the list. Paste coordinates straight in:
40.690008, -74.045843and40°41'24"N 74°02'45"Ware both understood, and are parsed on your Mac rather than sent anywhere. Or click the map where you want to be. -
Press Teleport
The staged pin becomes the location the phone reports, and everything on it follows within about a second: Maps, the weather, the app you are testing. Open Maps on the phone and press the locate button to confirm.
-
Move, if you need to move
A location that stays put is enough for most testing. When it is not, hold the arrow keys or W A S D, or drag the on-screen joystick, and the position walks at whatever speed you picked. For something repeatable, plan a route and press play.
-
Put it back
Press Reset to real, or pull the cable. Either hands the phone back its own GPS immediately. Nothing was written to the device, so there is nothing else to undo.
Signed, notarised, and what that gets you
The Mac build is signed with an Apple Developer ID certificate and put through Apple's notarisation service, which scans it and issues a ticket saying so. That ticket is stapled into the app bundle, so Gatekeeper can verify it without asking Apple at the moment you launch: the app opens on a Mac that has never been online.
In practice that means no right-click, no Open Anyway in System Settings, and no Terminal command to strip the quarantine flag. Double-click and it runs, the same as anything from the App Store.
You do not have to take that on trust. codesign will name the certificate
the app was signed with, and spctl will tell you what Gatekeeper makes of
it:
codesign -dv --verbose=4 /Applications/Draftpin.app spctl -a -vvv /Applications/Draftpin.app
The first prints the authority chain, ending in Apple's root. The second should answer
accepted with source=Notarized Developer ID. Anything else
means the copy you are holding is not the one that was published.
It is not code-signed yet, so SmartScreen still shows a blue warning on first run there. Signing on Windows is a separate certificate and a separate process, and it has not been done. What to click on Windows.
Every published build's SHA-256 is listed on the
download section. Compare it with
shasum -a 256 on the file you were served.
Does it need administrator rights?
Usually not, and the answer depends only on the phone's iOS version rather than on anything about the Mac.
- iOS 17.4 and newer: no. Draftpin brings up the tunnel iOS wants inside its own process, using a pure-Python network stack, so there is no kernel interface to open and no password prompt.
- iOS 17.0 to 17.3.1: yes. Those releases predate the service that makes the in-process tunnel possible, and the fallback needs a privileged network interface. Draftpin detects this as soon as it sees the device and says so plainly rather than failing somewhere obscure. Updating the phone to 17.4 or later, which shipped in March 2024, removes the requirement.
- iOS 16 and older: no. An older transport, with no elevation at any point.
The other free Mac tool
If you have searched this before, you have probably found LocationSimulator by Schlaubischlump on GitHub. It is free, open source and long-established, and it does the same job through the same Apple facility. It is also macOS-only, which is the practical difference: teams testing the same build on a Mac and a Windows PC end up running two different tools with two different habits.
Draftpin is the same idea on both platforms: one window, one set of shortcuts, the same route files either side. If you only ever work on a Mac, either will get a phone standing somewhere else. How the whole field compares, free and paid.
What this will not do
Worth knowing before you spend five minutes on it, because none of this is fixable by choosing a different app.
- It does not hide itself. Draftpin sets the location the phone reports and makes no attempt to defeat apps that check whether that location is simulated. Games and family-tracking apps that check will see it. If that is what you are after, this is the wrong tool.
- Latitude and longitude only. The call iOS exposes takes exactly two arguments, so no tool of any kind, free or paid, Mac or Windows, can set an altitude or a compass heading.
- The cable has to stay in. There is no wireless mode. Unplugging is the undo button, which is convenient, but it is not optional.
Questions
Can you change an iPhone's location from a Mac?
Yes, and a Mac is the easier of the two platforms for it. iOS exposes a location-simulation service to any computer the phone trusts, over USB, and macOS already ships the USB service needed to reach a phone at all. Nothing has to be installed first, no jailbreak is involved and nothing is added to the phone. A desktop app such as Draftpin sets the coordinates the device reports, and unplugging the cable undoes it.
Do I need Xcode to simulate a location on a Mac?
No. Xcode's Simulate Location works, but only against a scheme you are running: you need the project, a build installed on the device by Xcode, and a debug session attached. Draftpin drives the same underlying service directly, so it works with a phone you did not write any software for, and there is no Xcode download involved.
Does macOS block Draftpin from opening?
No. The Mac build is signed with an Apple Developer ID certificate and notarised by Apple, and the notarisation ticket is stapled to the app, so Gatekeeper clears it on first launch without even needing a network connection. Double-click and it opens. If you are holding a copy downloaded before signing was in place, macOS will still refuse that one; download the current build and it opens normally.
Does it work on Apple Silicon?
Yes, and only on Apple Silicon. The Mac build is arm64 and runs natively on every M-series Mac with no Rosetta involved. There is no Intel build: the device layer is a native Python bundle frozen for one architecture, and a universal app that launched on an Intel Mac and then could not see a phone would be a worse outcome than not shipping one. macOS 11 Big Sur is the oldest version supported.
How do I restore the real location?
Press Reset to real in the app, or pull the cable out. Either restores the phone's own GPS immediately, and restarting the phone clears it too. The simulated location is held only for the life of the connection and nothing is written to the device, so there is nothing to clean up afterwards.
Get on with it
Download the Mac build.
Free to start, no account. About a minute from download to a phone standing somewhere else.