Open-source project
ChrisMack32/Locus avatar
ChrisMack32/Locus

Locus: an open-source iPhone location teleport that feeds coordinates into locationd

Free open-source iPhone location teleport (MIT)

511 stars70 forksSwiftMIT

At a glance

What is it?
Locus is a free MIT-licensed iOS app that injects spoofed GPS coordinates through Apple's developer location service, so Maps and other apps read the fake position from the system. It is a system-level teleport tool, not a game client, and the README is explicit that games running their own location checks can still reject it.
Who is it for?
Locus suits iOS users who want a system-wide location change that Apple Maps and similar apps follow, and who are willing to sideload an IPA, install LocalDevVPN and handle a pairing file or the iOS 27 Pair on this iPhone flow. It is the wrong tool if your goal is Pokémon GO, because the README states the game runs its own location checks and often rejects developer or simulated GPS, with no supported fix in the app.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 65 days ago.
What is it written in?
Mainly Swift, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 27, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What Locus actually changes, and who it is for

Most location spoofing on iOS ends the same way: an app reports a fake Wi-Fi lookup, and the moment outdoor GPS gets a fix, the real position overwrites it. Locus takes a different route. According to the README, it injects coordinates through Apple's developer location service into locationd, the system daemon that other apps query for position. The spoofed GPS is therefore what Maps and other apps see, not a single-app trick.

The intended user is someone with a sideloaded iPhone who wants system-level teleporting: tap the map, search a place, or drive a route. The feature list includes one-tap teleport from a map pin or place search, a live joystick with walk, run, cycle and drive modes, MapKit walk and drive routing on real roads and footpaths, GPX import and export, and favorites with recents. Everything runs on-device, and the README states there is no analytics and nothing is uploaded. That privacy claim is a design statement rather than a verified audit, but it is consistent with the architecture: the app talks to the local developer tunnel, not to a backend.

The developer tunnel behind the teleport

Locus does not implement Apple's location simulation protocol itself. The README says it uses the MIT-licensed idevice FFI to talk to Apple's DVT location simulation over an on-device developer tunnel, described as the same class of mechanism Xcode uses. That is the whole trick, and it explains both the capability and the constraints.

The data flow is: the app builds a coordinate or a route, sends it over the developer tunnel to the device's location simulation endpoint, and locationd then serves that position to anything that asks the system for location. Because the injection point is below the app layer, every app that trusts the system reading follows along. Because it is a developer service, it requires a developer relationship with the device: a pairing file on iOS 18 through 26, or the on-device pairing flow on iOS 27. The README also names LocalDevVPN, a loopback tunnel with a default address of 10.7.0.1, as a required install. In other words, the tunnel is not optional plumbing; it is the transport the whole design depends on.

Install: sideload the IPA, pair the device, start on Wi-Fi

The README points to SETUP.md for full steps and offers two paths: grab a prebuilt IPA from Releases, or build from source. The published IPA does not require an Apple Developer account, but building from source does, because code signing needs one. The bundle ID is com.chrismack.locus.

On iOS 27, pairing happens on the phone. Settings shows a Pair on this iPhone option that advertises _remotepairing-pairable-host._tcp, and the 6-digit code is confirmed under Settings, Privacy & Security, Developer Mode, Pair with Host. No computer is involved.

On iOS 18 through 26, you import an RPPairing file once, generated with idevice_pair. The README lists three ways to get that pairing into Locus, including a clipboard paste option. Inside LiveContainer, file pickers often do not work, so the README suggests long-pressing Locus, opening Settings, enabling Fix File Picker, or sharing the pairing file into LiveContainer, or pasting the RPPairing plist contents with the Paste RPPairing from clipboard action.

LocalDevVPN must also be installed, and then Locus is sideloaded. The README advises starting a teleport on Wi-Fi first; the session can keep working on cellular afterward. If you build from source, XcodeGen generates the project, and the team ID goes into project.yml as DEVELOPMENT_TEAM:

bash
xcodegen generate
open Locus.xcodeproj

The CLI path is the same generation step followed by xcodebuild against the Locus scheme for a generic iOS destination, with DEVELOPMENT_TEAM set to your team ID. A successful build produces the app; a signing error means the team ID or the signing configuration is wrong, not that the source is broken.

Pokémon GO is the case where Locus is the wrong tool

The README spends real space on this, and it is the most useful part of the documentation. Apps that simply trust GPS, Apple Maps included, follow the injected position. Pokémon GO does not. It runs its own location checks and often rejects developer or simulated GPS, producing a Failed to detect location error. The README states plainly that this is expected with this method, not a Locus bug, and that there is no supported fix in the app.

It also explains why tools like iPogo and SpooferPro appear to work where Locus does not: those are modified Pokémon GO clients, so their features live inside the altered game rather than feeding coordinates through iOS for every app. Locus never patches or replaces Pokémon GO; it only changes what the system reports. That distinction matters when choosing a tool. If your goal is that one game, a system-level spoof is the wrong layer to attack, and the README says so rather than promising a workaround.

The same logic applies beyond games. Any app that performs its own location validation, rather than reading the system value, can disagree with what Locus reports. Locus changes the system answer; it does not change how other software judges that answer.

How Locus differs from a modified game client

The closest alternative named in the README is iPogo, alongside similar modified clients such as SpooferPro. The difference is architectural, not a matter of feature lists. A modified client is a patched build of a specific app: the spoofing lives inside that app, it only affects that app, and it necessarily ships a changed binary. Locus is a separate app that changes the system's reported location, so every app reading the system value sees the same coordinates, and the target app is left untouched.

That trade-off cuts both ways. Locus covers Apple Maps and any other app that trusts the system, which a single-app patch cannot do. In exchange, it cannot defeat an app that runs its own checks, which is exactly where a modified client operates. Neither approach dominates; they sit at different layers, and the README is honest that Locus is for system-level teleporting and is not a game client or an anti-cheat bypass. Locus is also independent, and the README notes it is not affiliated with Mirage or Wapixel.

Maintenance, licensing and what the documentation leaves open

The repository is not archived, and the last push was on 2026-07-27, the same day as the v1.0.2 release, which followed v1.0.0 the same evening. Two releases in one day suggests an initial launch cadence rather than a long track record; there is no release history in the repository to judge how often fixes arrive. Treat the release channel as the place to watch for changes.

Locus is MIT-licensed, and the README states that Vendor/idevice contains the idevice FFI, also MIT. MIT is permissive: it allows use, modification and redistribution with the licence and copyright notice retained. That is a statement about the licence text, not legal advice, and anyone redistributing a build should read the licence themselves. One practical implication of the permissive terms is that forks and repackaged builds are allowed, so a build you download may not come from this repository. The README does not document an upgrade path or rollback procedure for the pairing state, and it does not describe what happens to an active session if the tunnel drops. Those are the gaps to test on your own device before depending on it.

Editorial conclusion

Locus suits iOS users who want a system-wide location change that Apple Maps and similar apps follow, and who are willing to sideload an IPA, install LocalDevVPN and handle a pairing file or the iOS 27 Pair on this iPhone flow. It is the wrong tool if your goal is Pokémon GO, because the README states the game runs its own location checks and often rejects developer or simulated GPS, with no supported fix in the app. Before relying on it, verify which pairing path your iOS version needs, confirm the RPPairing import or Pair on this iPhone step completes, and check that a teleport started on Wi-Fi survives the switch to cellular.

Frequently asked questions

How do I install Locus on an iPhone?

Grab a prebuilt IPA from Releases and sideload it, or build from source with XcodeGen and an Apple Developer account for signing. The README also requires installing LocalDevVPN and completing a pairing step: an RPPairing import on iOS 18 through 26, or Pair on this iPhone on iOS 27.

How do I use Locus to change my location?

Start a teleport on Wi-Fi first, then tap the map, search a place, or drive a route; the session can keep working on cellular afterward. Locus sends the coordinates through Apple's developer location service into locationd, so apps that trust the system reading follow the spoofed position.

Does Locus work with Pokémon GO?

The README says Pokémon GO runs its own location checks and often rejects developer or simulated GPS with a Failed to detect location error. It describes this as expected with this method, not a Locus bug, and states there is no supported fix for it in the app.

What does Locus need in order to run?

A sideloaded build, LocalDevVPN for the loopback tunnel with a default address of 10.7.0.1, and a pairing setup that depends on the iOS version. On iOS 27 the README describes an on-device Pair on this iPhone flow; on iOS 18 through 26 you import an RPPairing file once.

Is Locus free and open source?

Yes. The repository is MIT-licensed, and the bundled Vendor/idevice FFI is also MIT. The README states the app runs fully on-device with no analytics and nothing uploaded.

Official sources

  1. ChrisMack32/Locus on GitHub
  2. Issues
  3. License: MIT
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/chrismack32-locus.svg)](https://hysenlabs.com/projects/chrismack32-locus)