MyLocation sets an exact GPS position on an iPhone or Android phone connected to your Mac, using the developer location tools that ship with iOS and Android. Your app sees the coordinates through the normal Location Services API, on real hardware, with real sensors and a real OS build.

Anything where the answer depends on where the device thinks it is.
Move the device across a boundary and watch the callback fire on the phone, including background wake-ups that a simulator handles differently.
Verify distance calculations, radius filters and "closest first" ordering against a known coordinate instead of your office.
Check what a user in another country or city actually sees: catalogue, currency, tax copy, legal notices, feature flags.
Step a courier or customer through pickup, in-transit and arrival states without driving anywhere.
Start navigation from a fixed origin so screenshots, ETAs and route rendering are reproducible between builds.
Exercise the while-in-use, always and reduced-accuracy branches on a device that behaves like a customer's.
The Xcode Simulator and the Android emulator both set a location, and for early development they are the right tool. They stop being enough when the thing you are testing depends on the device itself.
| Xcode Simulator / Android emulator | MyLocation on a real device | |
|---|---|---|
| Hardware sensors | Simulated or absent | Real GPS stack, real motion sensors, real radios |
| Background behaviour | Often differs from a device | The device's own scheduler and power rules |
| Release builds | Debug builds only | TestFlight, Play internal testing or a store build |
| Third-party SDKs | Some refuse to run | Behave exactly as they will for users |
| Android OEM differences | Stock image only | Samsung, Pixel, Xiaomi and others, each with its own power management |
| Non-engineers | Needs Xcode or Android Studio | A map on the Mac; anyone on the team can drive it |
MyLocation uses the same underlying mechanism as those tools: the developer location simulation Apple exposes over a device connection, and Android's test-location provider over ADB. Nothing is installed on the phone and the real GPS returns when you stop.
Two minutes the first time.
Open the DMG and drag MyLocation to Applications. It is signed with a Developer ID and notarized by Apple.
iPhone: turn on Developer Mode. Android: turn on USB debugging. Connect with a cable and accept the trust prompt.
Click the map, search an address, or paste latitude and longitude. Save the places you test often as favourites.
The device reports that position to every app. Press Stop, unplug or restart to hand control back to the real GPS.
Check these before you download.
The app is a free download. Install it, confirm it finds your device, then decide. Checkout is handled securely by Gumroad; your licence key is shown right after payment.
No. The location is set at the operating system level, so any build reads it through the normal Location Services API — including a TestFlight build, a Play internal test or a store release. There is nothing to link and no code to change.
Not yet. MyLocation is a desktop app driven from its map; there is no command-line interface. For automated suites, keep using the simulator or the platform test APIs, and use MyLocation for the manual and exploratory passes that need real hardware.
The coordinates you enter are what the device reports. Accuracy values and sensor fusion still come from the device, so an app that fuses GPS with Wi-Fi or motion data may smooth or lag the change slightly.
Pair with a cable first. After that the connection can continue over Wi-Fi on the same network, though a cable stays the reliable option for long sessions.
One device per session today. The licence covers two Macs, so two people on a team can each drive their own device.
It is an official switch in iOS Settings that Apple provides for exactly this kind of work. It does not modify the OS, does not void the warranty, and can be turned off again. On Android the equivalent is USB debugging.