- iOS 虚拟定位工具,基于本地 HTTP 代理 MITM 方案 - MapKit 原生地图体验,支持搜索、收藏、实时定位 - 完整的设置引导流程(证书安装、WiFi 代理配置、环境验证) - 支持 iOS 15+,SwiftUI 构建
7.3 KiB
📍 Location Spoofer
iOS Location Spoofer · DingTalk · WeChat · Apple Watch Region Unlock · Fake GPS
No VPN, no jailbreak — run a local HTTP proxy on your iPhone to rewrite Apple location responses.
Works with DingTalk check-in, WeChat location sharing, and any app that uses system location. Map selection, real-time location, environment verification, certificate setup, and runtime logs in a single app.
Features · Quick Start · 中文 · Changelog
Important
This project is intended for education, security research, and testing on your own devices. It installs a locally generated CA certificate and requires a manual HTTP proxy on the current Wi‑Fi network. Please understand the risks and follow applicable laws and service terms.
Credits
The core location-response rewriting approach and Go implementation are based on Yu9191/wloc. This project adds a SwiftUI interface, MapKit selection, certificate and proxy guidance, environment verification, favorites, and diagnostics.
Why Location Spoofer?
Unlike tools that require a computer to stay connected, a VPN tunnel, or a jailbroken device, Location Spoofer keeps the control flow on the iPhone itself.
| Feature | Description |
|---|---|
| 🚫 No VPN | No VPN tunnel — uses only location permission, no background refresh or notification access required. |
| 📱 No jailbreak | Can be installed through self-signing; minimum deployment target is iOS 15. |
| 🗺️ Native Maps experience | The same blue dot and selection gestures as Apple Maps — search, tap, and drag. |
| 📍 System-level location spoofing | Works with DingTalk, WeChat, Apple Maps, Amap, and other apps for real-time fake GPS. |
| 🔍 Visible map scale | Left-side controls show the current visible range; place name adapts to zoom level. |
| 🧪 Environment verification | Checks proxy, CA trust, Wi‑Fi interception, coordinate write, and response rewrite. |
| 🧾 Diagnostics | Per-entry copy for easy sharing and debugging. |
Screenshots
| Main Interface | Apple Maps | Amap | Apple Watch |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
Key Features
- iOS Location Spoofer / Fake GPS: Apply the selected coordinate to the local proxy that rewrites location responses, compatible with DingTalk check-in, WeChat location sharing, and more.
- Native real-time location: The map displays MapKit's own blue dot — no extra "fake real-time" overlay.
- Concurrency-safe selection: Pan, tap, search, favorites, and async location respect the user's latest intent; stale results won't overwrite newer selections.
- Hierarchical place names: POI, street, or road at close zoom; neighborhood, district, city, or province at wider zoom.
- Map scale display: Zoom controls show the current visible range.
- Favorites with quick switch: Save frequent coordinates and see which location is about to be applied.
- Setup guide: Certificate download, installation, full trust, Wi‑Fi HTTP proxy, activation, and deactivation instructions.
- Built-in diagnostics: Verification flow and structured runtime logs.
Quick Start
1. Install the App
- Download a build from Releases and self-sign; or
- Build from source on macOS with Xcode — see the build guide.
Detailed steps in the self-signing guide.
2. Install & Trust the CA
Follow the first-setup wizard to download the profile, then:
Settings → General → VPN & Device Management → install WLOC CA
Settings → General → About → Certificate Trust Settings → enable full trust
3. Configure the Current Wi‑Fi Proxy
On the current Wi‑Fi's proxy settings, choose "Manual":
Server: 127.0.0.1
Port: 8888
Authentication: off
4. Select a Location & Enable
- Search, tap, or drag the map to pick a location; tap the real-time location button to jump to the MapKit blue dot.
- Tap "Start Spoofing" and wait for the environment check to pass.
- Follow the in‑app activation instructions to refresh airplane mode, Wi‑Fi, and location services.
- Open Apple Maps or your target app to verify.
5. Restore Your Real Location
Stop spoofing, remove the manual proxy from the current Wi‑Fi, and follow the in‑app deactivation instructions to refresh the system location cache. If stale cache persists, restart your device.
Why No VPN?
iPhone location request
│ Wi‑Fi HTTP proxy: 127.0.0.1:8888
▼
Local wloccore Go proxy
│ Handles only the targeted Apple location-service traffic
▼
Apple location service response
│ The selected coordinate is written into the response
▼
The system and applications receive the modified result
The project does not use Network Extension to create a VPN tunnel — there is no VPN icon and no VPN slot occupied. However, you still need to configure the current Wi‑Fi HTTP proxy and install & trust the locally generated CA. Re‑check proxy settings after switching Wi‑Fi networks; remove the manual proxy when you stop using the app.
Compatibility
| Item | Requirement |
|---|---|
| iOS | 15.0+ |
| Build | macOS, Xcode, XcodeGen |
| Swift | 5.9 |
| Go | 1.23+ |
| Network | Wi‑Fi with manual HTTP proxy support |
| Installation | Self-sign or use release builds |
Actual behavior may vary with iOS version, network conditions, system location cache, device model, and the target app's own location strategy. Compatibility with every iOS version or third-party app is not guaranteed.
Build & Project Structure
./build.sh
The unsigned IPA is at:
dist/PaopaoLocationSpoofer-unsigned.ipa
App/ SwiftUI, MapKit, location and setup flow
Core/ Go local proxy and location response rewriting
Shared/ Favorites, settings, logs, and shared models
Resources/ Info.plist, Entitlements, and icons
Scripts/ Build, signing, and verification scripts
Tests/ XCTest and Bash contract tests
docs/ Build, self-signing, and changelog documentation
Documentation & Feedback
When reporting issues, please include reproduction steps, iOS version, device model, and sanitized runtime logs.
Links
LinuxDo — https://linux.do


