The project's README from github.com/seanhowarthdev/Roam-Control. As one markdown file: README.md.
Choose, test and move an iPhone's reported location from one clean Apple Maps interface.
Public beta: 0.9.0 (Build 29) · Requires: iOS 27+
Roam Control is a source-available SwiftUI app for location-based development, quality assurance and responsible personal testing on an iPhone you own and control. It supports fixed locations, walking routes, favourites, history, native on-device pairing and LocalDevVPN-compatible sessions.
Welcome · Fixed location · Walking route
Private by design · Settings
Roam Control is not distributed through the App Store or TestFlight. Download the IPA attached to the matching GitHub Release and sign it with SideStore using your own Apple account.
You will need:
Read the complete installation guide before installing. Free Apple accounts remain subject to Apple's app-count and seven-day refresh limits.
The pairing record is stored in the iPhone Keychain and is never uploaded.
Locations, coordinates, searches, favourites, history, walking routes and pairing records stay on the iPhone.
Anonymous usage statistics are optional and off by default. When enabled, a narrow first-party sender reports only a fixed set of activity events, the app version/build and a hashed random installation identifier. It never sends locations, searches, routes, pairing data, device names or diagnostics. No third-party analytics SDK is embedded.
The public project has no live analytics destination or Apple signing team. A checkout therefore sends no statistics unless the builder deliberately supplies a private local configuration.
Read Privacy for the exact event and retention disclosure.
Roam Control is intended for development and testing on a device you own and control. Location simulation can affect every app using the iPhone's reported position. Restore the real location before using navigation, emergency, safety, transport or location-sharing features.
Do not use Roam Control to mislead another person, falsify evidence, access something you are not entitled to use, evade safeguards or breach a third-party service's rules. See Responsible Use.
RoamControl.xcodeproj in Xcode 27 or newer.The iPhone simulator is useful for interface work but cannot complete the physical pairing handshake or start a location session.
Normal builds use the included Frameworks/RoamPairingFFI.xcframework. The framework contains arm64 iPhone and Apple Silicon simulator slices. Rebuild it only after changing Native/RoamPairingFFI; instructions are in the build and release guide.
Roam Control generates or imports an RPPairing record for the same iPhone and stores it in the device-only Keychain. When a location starts, it discovers that iPhone's remote-pairing service through LocalDevVPN, verifies the device identity and opens the encrypted developer session used to set or clear a simulated location.
The native engine is a narrow Rust-to-Swift bridge around the MIT-licensed idevice library, pinned to an exact revision.
For casual help, beta discussion and feature ideas, join the Roam Control Discord.
For bugs and reproducible issues, please use GitHub Issues. For security-sensitive reports, use GitHub Security Advisories.
Bug reports and focused improvements are welcome. Read CONTRIBUTING.md before opening an issue or pull request, and never upload pairing records, signing material, credentials or private location information.
Roam Control's current source is available under the PolyForm Noncommercial License 1.0.0. It may be used, modified and redistributed for non-commercial purposes under those terms. Commercial use requires separate permission from the project owner.
Roam Control 0.9.0 Beta 1 was released under the MIT Licence and remains available under those terms. The licence change applies to development after Beta 1 and does not revoke rights already granted for that release.
See Licensing for details. Bundled dependencies retain their own licences; see Third-party notices.