0xP0/GPSDebugger

★ 0Forks 0SwiftGitHub ↗Compare

README

GPSDebugger

中文

A native macOS utility for testing location-aware iPhone apps with a simulated system location. Pick a place on Apple Maps, select a connected development device, and keep the simulated location active until debugging is stopped.

Features

  • Pick coordinates by clicking or searching Apple Maps
  • Discover trusted iPhones connected over USB
  • Refresh the simulated location every second
  • Change coordinates without restarting the debugging session
  • Restore the device's real location when debugging stops or the app quits
  • Create an isolated Python environment and install pymobiledevice3 on first run

Requirements

  • macOS 14 or later
  • Xcode Command Line Tools and Python 3
  • An iPhone with Developer Mode enabled
  • A trusted USB connection to an unlocked device

Build

./Scripts/build_app.sh
open dist/GPSDebugger.app

The build script uses ad-hoc signing by default. To use an Apple Development certificate, pass its name or SHA-1 hash:

GPSDEBUGGER_SIGNING_IDENTITY="Apple Development: [email protected] (TEAMID)" \
  ./Scripts/build_app.sh

How it works

The SwiftUI app uses MapKit for place selection. A bundled Python helper opens Apple's developer location-simulation service through pymobiledevice3 and reapplies the selected coordinate while the debugging session remains active.

Limitations

  • This is a macOS development tool, not an iPhone App Store app.
  • Developer Mode and a trusted development connection are required.
  • Apple Watch location cannot be simulated directly by this app.
  • Carrier region, SIM roaming state, App Store region, and network location are independent from GPS simulation.

Responsible use

Use GPSDebugger only on devices you own or are authorized to test. It is intended for app development, QA, and location-dependent feature testing.

License

MIT

中文说明

GPSDebugger 是一个用于调试 iPhone 定位功能的原生 macOS 工具。你可以在 Apple 地图上点击或搜索地点,选择通过 USB 连接的开发设备,并持续保持模拟 定位,直到停止调试或退出程序。

功能

  • 在 Apple 地图上点击或搜索地点
  • 自动发现已信任并通过 USB 连接的 iPhone
  • 每秒刷新模拟 GPS,避免被真实定位覆盖
  • 调试期间直接切换坐标
  • 停止调试或退出程序后恢复真实 GPS
  • 首次运行自动创建独立 Python 环境并安装 pymobiledevice3

使用条件

  • macOS 14 或更高版本
  • Xcode 命令行工具与 Python 3
  • iPhone 已启用“开发者模式”
  • 手机已解锁、信任此 Mac,并通过 USB 连接

构建

./Scripts/build_app.sh
open dist/GPSDebugger.app

构建脚本默认使用临时签名。如需使用 Apple Development 证书,可设置 GPSDEBUGGER_SIGNING_IDENTITY 环境变量。

请仅在自己拥有或已获授权的设备上使用。本项目用于应用开发、质量保证和 定位相关功能测试。

Contributors

0xP0

Issues