A minimal iOS app that does one thing: simulate your device's GPS location — a single map screen where you drop a pin and your iPhone reports that position system-wide. No computer required after initial setup.
Origin & attribution: TLocation is a derivative work of StikDebug by Stephen Bove (Stik) and the StikDebug contributors — not an original project. The entire device-communication core (pairing-file handling, loopback tunnel, Developer Disk Image mounting, the
ideviceFFI, background keep-alive, and the location-simulation engine itself) originates from StikDebug; this fork removes StikDebug's other features, adds two locate buttons, and rebrands the app. Licensed AGPL-3.0, same as upstream — see LICENSE (preserved unchanged from StikDebug).
- Drop a pin anywhere (tap, search, or coordinates) and simulate that location
- Locate Me button: centers the map on your real GPS position
- Return to Real Location button: clears the simulated location and restores your device's real GPS position (only enabled while a simulation is active)
- Bookmarks for frequent locations
- Keeps simulating in the background (silent-audio + low-accuracy-location keep-alive)
- URL scheme:
tlocation://simulate-location?lat=37.3349&lon=-122.0090,tlocation://clear-location
- iOS 17.4+ (on-device setup; no Mac/PC needed after you have a pairing file)
- LocalDevVPN (free) — loopback VPN so the app can talk to the device it runs on
- A pairing file for your device — see the pairing file guide
- Wi-Fi joined to a network when starting a simulation. iOS only exposes the on-device pairing service while Wi-Fi is associated (the network needs no internet — another phone's hotspot works). On recent iOS builds, cellular-only / hotspot-toggle tricks do NOT work. Once simulation is running, it may survive brief network changes while the VPN stays up.
- Download the latest
TLocation.ipafrom Releases (built unsigned by CI). - Open SideStore → + → pick the
.ipa. SideStore signs it with your Apple ID and installs it. - Launch TLocation, import your pairing file, connect LocalDevVPN, wait for the status banner to turn green.
AltStore works the same way.
Add this source in SideStore to get updates automatically: https://raw.githubusercontent.com/truongkma/t-location/main/source.json.
Note: the source lists no installable version until the first release tag is pushed. Until then it will appear empty in SideStore — install the .ipa manually as described above.
xcodebuild -project TLocation.xcodeproj -scheme TLocation -configuration Debug \
-destination 'generic/platform=iOS' CODE_SIGNING_ALLOWED=NO buildPushing a version tag (e.g. 1.0) makes CI attach an unsigned IPA to a GitHub release.
JIT enabling, JavaScript scripting, console/syslog viewer, process inspector, device info, app-expiry viewer, App Intents. Only location simulation (and the infrastructure it needs) remains.
- StikDebug — the upstream project TLocation is derived from, © Stephen Bove (Stik) and the StikDebug contributors. If TLocation is useful to you, star and support the original project. Setup guides live in StikDebug-Guide.
- idevice by jkcoxson — Rust library for Apple device services (bundled here as
libidevice_ffi.a, unchanged) - LocalDevVPN / StosVPN — loopback VPN that makes on-device pairing possible
- App icon: original artwork for this fork (blue gradient from StikDebug's icon palette, pin glyph new)
License: AGPL-3.0 — inherited from StikDebug and applying to this entire derivative; the complete corresponding source is this repository. See LICENSE.