Roam-Control README

The project's README from github.com/seanhowarthdev/Roam-Control. As one markdown file: README.md.

Roam Control app icon

Roam Control

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+

iOS 27+ SwiftUI Beta 0.9.0 Build 29 PolyForm Noncommercial 1.0.0

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.

Screenshots

Roam Control welcome screen Selecting a fixed location in London Active simulated walking route

Welcome · Fixed location · Walking route

Privacy-first anonymous statistics choice Roam Control settings

Private by design · Settings

Highlights

Install the public beta

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.

First-time setup

  1. Install and open Roam Control.
  2. Complete the four-page introduction.
  3. Tap Pair This iPhone on Device Setup.
  4. Open Settings → Privacy & Security → Developer Mode → Pair with Roam Control.
  5. Enter the six-digit code shown in Roam Control.
  6. Install and connect LocalDevVPN.
  7. Choose a location or walking route.

The pairing record is stored in the iPhone Keychain and is never uploaded.

Privacy

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.

Responsible use

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.

Build from source

  1. Clone the repository and open RoamControl.xcodeproj in Xcode 27 or newer.
  2. Select the Roam Control target.
  3. Choose your own Apple development team under Signing & Capabilities.
  4. Select a connected iPhone and press Run.

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.

How it works

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.

Documentation

Community

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.

Contributing

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.

Licence

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.

Roam-Control (seanhowarthdev/Roam-Control)

Searching Database…

这是什么?Roam Control 是一款 SwiftUI iOS 应用,让你可以为开发、QA 和负责任的个人测试而选择、测试和移动 iPhone 上报的 GPS 位置。
这是独立应用,还是要加到 Xcode 里的东西?它是一个自包含的 iOS 应用,安装并运行在你自己的 iPhone 上,不是库或 Xcode 插件。其原生引擎是一个围绕 idevice 库的 Rust 到 Swift 桥接,负责设备配对和位置会话。
它不在 App Store 上,我该怎么安装?用你自己的 Apple 账号,从对应的 GitHub Release 下载 IPA 并用 SideStore 签名(或在 Xcode 中从源码构建),然后通过开发者模式与你的 iPhone 配对,输入应用中显示的六位代码。
使用之前我需要准备什么?一部运行 iOS 27 或更新版本并已开启开发者模式的 iPhone、已安装并连接好的 LocalDevVPN,以及 Mac 上的 SideStore 或 Xcode(用于签名/安装应用)。
安装上有什么需要留意的坑吗?免费 Apple 账号受苹果的应用数量和七天刷新规则限制,而且 iPhone 模拟器只能用于界面工作,因为它无法完成真机配对握手,也无法启动真实的位置会话。
我的位置数据会离开手机吗?不会。位置、搜索、收藏、历史、路线和配对记录都留在设备上;可选的匿名使用统计默认关闭,且绝不包含位置、搜索或配对数据。
除了设置固定点,模拟位置还能做什么?你可以预览并启动 Apple Maps 步行路线,然后在会话中途暂停、恢复、反向或改向,还可以保存命名收藏并重回最近的位置。
使用它需要给 iPhone 越狱吗?不需要。它通过 SideStore(或 Xcode)侧载以及经 LocalDevVPN 进行的设备上配对握手,在未越狱的原版 iPhone 上即可工作。
LocalDevVPN 在这里用来做什么?Roam Control 用 LocalDevVPN 来发现已配对 iPhone 的远程配对服务,并打开一个加密的开发者会话,用于设置或清除模拟位置。
测试结束后我能撤销位置更改吗?可以。应用让你在测试结束后显式恢复真实位置,并且在固定点或步行会话被中断时包含恢复处理。
Size
20.2 MB
Stars
1.1K
Age
1mo
Commits · 90 Days