mrkeyoor.com_
Mon 07 Sept 16:59 UTC
Dev Toolsevaluationupdated 07 Sept 2026

ios-location-spoofer review

iOS Location Spoofer is primarily documented in Chinese; an English README exists, but it lags the Chinese file in several technical details. It rewrites Apple's network-location responses through a proxy app so an iPhone reports chosen coordinates without a jailbreak, computer, or developer account.

trackingstars / 7d
Verdict

Our worker install took 70 seconds, added 43 packages, and used 217 MB, while the repository supplied no build or test target. Use iOS Location Spoofer for authorized QA on a spare phone when you already own a compatible proxy app and accept that Apple can break the interception path. Do not treat it as a dependable GPS simulator or a way to fool security-sensitive apps.

We ran it

Lab card: what happened when we ran ios-location-spooferScreenshot of ios-location-spoofer (github.com/mekos2772/ios-location-spoofer)
Install✓ · 70s43 packages · 217 MB
Buildn/ano build script
Testsn/ano test script
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo39 files~6,852 lines of source · 0.4 MB · 0 CI workflows · tests dir

Answers from our run

Does ios-location-spoofer build from source?

Dependencies installed in 70 seconds (43 packages), and the project has no separate build step. We cloned commit f183fd9 into a clean Debian container with 3 CPUs and no project-specific setup.

Does ios-location-spoofer have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Does ios-location-spoofer have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use ios-location-spoofer?

Anyone unwilling to install and fully trust a proxy CA: the README makes HTTPS decryption a core requirement and warns that intercepted Apple traffic is visible to that proxy.

What are the alternatives to ios-location-spoofer?

Original iOS Location Spoofer, LocationSimulator, Location Spoofer. Our worker install took 70 seconds, added 43 packages, and used 217 MB, while the repository supplied no build or test target.

Setup3/570-second Worker install; phone setup still needs MITM and CA trust
Docs3/5Detailed Chinese guide, but the English README conflicts with it
Community4/53,858 stars and current reports across 28 issues and PRs
Maturity2/5Young, untagged project with no CI and open iOS 27 failures

Who it’s for

iOS developers testing location-dependent behavior on their own devices without keeping a Mac attached.
Shadowrocket, Surge, Loon, Quantumult X, or Stash users who already understand HTTPS interception and certificate trust.
Small teams that want an optional web map for changing test coordinates remotely.
Researchers prepared for Apple beta releases to change the private location request flow.

Who it’s NOT for

Anyone unwilling to install and fully trust a proxy CA: the README makes HTTPS decryption a core requirement and warns that intercepted Apple traffic is visible to that proxy.
Tests that must control hardware GPS: the project only changes Wi-Fi and cell-tower positioning, and its README says a strong GPS signal may override the result.
Surge users without the Body Rewrite entitlement: issue 63 documents a correctly imported module that could not alter the response until that paid feature was available.
Teams relying on iOS 27 beta compatibility: issue 79 reports that beta 7 stopped producing the /clls/wloc response the script needs, while issue 76 reports an unavailable location.
Financial-app testing that assumes the fake location is hidden: issue 78 reports altered results in Maps and Weather while bank apps still detected the real location.

Setup reality

Our Node 22 sandbox entered location-picker/worker/ and installed 43 npm packages in 70 seconds, using 217 MB on disk. There was no build script and no test script, so both steps were skipped. Npm audit reported 0 known vulnerabilities.

The phone-side module needs one of five supported proxy apps, HTTPS decryption, and a fully trusted CA. The optional picker needs Cloudflare and Wrangler for the measured Worker route, or Node 24, tokens, SQLite storage, and HTTPS for the self-hosted server.

Only network positioning is rewritten. Strong GPS may win, iOS 26 and 27 can retain old coordinates until a reboot, and beta 7 has open failure reports. Surge also needs its Body Rewrite entitlement, while the main troubleshooting guide is Chinese-only.

Five proxy clients replace a dedicated iOS build

Five module formats cover Shadowrocket, Surge, Loon, Quantumult X, and Stash. Each asks the proxy to intercept Apple's /clls/wloc response and replace coordinates before iOS calculates a location. The main script handles Wi-Fi entries and cell-tower fields, while a separate file serves Quantumult X. This avoids a jailbreak, Xcode, and an Apple developer account. It does require a commercial or third-party proxy client capable of editing response bodies.

The current Chinese README describes 4 response envelopes: ARPC, synthetic, marker, and bare. If parsing those formats fails, the script scans the raw bytes for coordinate messages. It changes latitude, longitude, and an existing accuracy field while passing through altitude, vertical accuracy, and motion state. That narrow rewrite is meant to reduce rejected responses. It remains tied to an undocumented Apple exchange, so changes in the request path can stop the module before its parser runs.

Five intercepted hostnames make certificate trust unavoidable

The modules list 5 hostnames for HTTPS interception, including Apple location services and two AutoNavi forms. Setup requires installing the proxy's CA and enabling full trust in iOS settings. That is a serious permission: the project warns that the proxy can see traffic to the intercepted endpoints and advises enabling the module only while it is needed. Keep the CA private material on the device and avoid broad wildcards that would capture unrelated Apple requests.

Surge adds a licensing trap documented in issue 63. The reporter had imported the module, enabled the listed hosts, trusted the certificate, and reconnected the VPN, yet location did not change because response-body rewriting was an unlockable Surge feature. This is a good example of why the import step is not enough. A useful smoke test needs the proxy log, a confirmed rewritten response, and a map check on the same phone.

What happened when we ran it

Our sandbox used Node 22 with 3 CPUs and 8 GB of RAM, then installed the project under location-picker/worker/. Npm completed in 70 seconds, adding 43 packages and consuming 217 MB on disk. The audit found 0 known vulnerabilities across critical, high, moderate, and low severities. These figures cover the optional Cloudflare Worker picker at commit f183fd9, not the iPhone proxy scripts or the Node server.

The measured checkout contained 39 files, about 6,852 lines of source, and occupied 0.4 MB before installation. There was no build script or target, so the build step was skipped. There was also no test script or target, so no tests ran, even though the scan found a tests directory. The repository had 0 CI workflow files and no Dockerfile. The clean install says Wrangler resolves; it does not prove coordinate rewriting on iOS.

The map picker turns one module into an optional service

The README presents 5 picker deployments: Cloudflare Worker through Wrangler, Cloudflare's web dashboard, Railway, a self-hosted Node server, and Docker. A generated configuration URL lets Loon or Shadowrocket fetch the chosen coordinate. This is useful for repeated QA because the tester taps a map instead of editing module arguments. It also creates another access-control surface, especially if the URL reaches the public internet.

The full server requires Node 24 because it uses the built-in SQLite module. At least one user or admin token must exist before a new database starts. User coordinates, access logs, and usage summaries go into SQLite, while place search and elevation call Nominatim and open-meteo. The README documents retention, archival, and a health endpoint. Those are thoughtful operator details, but they are separate from the lightweight Worker installation our lab measured.

iOS 27 beta 7 reports show how abruptly the method can fail

Open issue 79 concerns iOS 27 beta 7. One commenter reports successful MITM connections to Apple but no /clls/wloc HTTP response, leaving the script with nothing to modify. Issue 76 reports that beta 7 shows the current location as unavailable. The main README recommends a device reboot for iOS 26 and 27 caching, but an absent request cannot be fixed by clearing a cached coordinate.

App coverage also varies on the same phone. Issue 78 reports that Maps and Weather used the changed location while two banking apps exposed the actual one; a commenter saw a similar split with AutoNavi and bank software. The project only rewrites network-derived location, and the README says strong GPS may override it. Test every target app separately, with the exact iOS and proxy versions recorded.

Five-host Chinese instructions are ahead of the English README

The Chinese README lists 5 intercepted domains and says motion data now passes through unchanged. The English README lists 4 domains in one Loon note and still says the port rewrites motion state. It also labels Quantumult X untested while the Chinese page gives a broader current support table. English documentation exists, which is better than leaving international users to machine translation, but the conflicting technical claims make the Chinese file the safer reference today.

GitHub records the last push on September 3, 2026, and issue activity on the same date. The repository had 3,858 stars and 28 combined issues and pull requests when fetched. There is no latest tagged release, so users must pin a commit or accept main-branch changes. Current maintenance and quick issue traffic are positive signs for a project created on June 30, but two months of history is too little to establish stable behavior across iOS updates.

Alternatives

ProjectWhat it isPick it when
Original iOS Location SpooferThe upstream standalone iOS app performs the VPN and interception on the device.pick this instead when you want an app-led local setup and have a paid Apple developer account for sideloading.
LocationSimulatorA macOS tool for setting locations and movement on connected Apple devices and simulators.pick this instead when a tethered Mac workflow is acceptable and scripted movement matters more than phone-only operation.
Location SpooferAn iOS testing app with map selection, local or third-party proxy modes, and diagnostics.pick this instead when you want an app interface and environment checks, and its documented iOS limits fit your test devices.

What people are saying

  1. [github-trending] mekos2772/ios-location-spoofer

Sources

  1. iOS Location Spoofer Chinese README
  2. iOS Location Spoofer English README
  3. Issue 79: iOS 27 beta 7 failure report
  4. Issue 78: banking apps detect actual location
  5. Issue 63: Surge Body Rewrite subscription requirement

More dev tools reviews

vtracer · How-To-Secure-A-Linux-Server · gpuix · openscreen · awesome-python · Acode · the whole board →