- BoYaJun2026-10-131209
iPhone 模拟定位操作指南
概述
苹果为开发者调试 App 提供了官方的模拟定位能力。借助 Xcode 自带的
devicectl命令行工具,可以在不越狱、不安装第三方证书、不使用 VPN、也不侧载 App 的情况下,为已连接的 iPhone 设置测试位置。文中示例环境为 M 芯片 Mac、macOS 27 和 Xcode 27。不同系统或 Xcode 版本的命令行为可能存在差异,请以本机实际输出为准。
准备条件
- 一台安装了 Xcode 的 Mac
- 一部 iPhone
- 一根可传输数据的数据线
- iPhone 与 Mac 建立信任关系
- iPhone 已开启“开发者模式”
操作步骤
1. 连接并信任设备
用数据线连接 iPhone 和 Mac,在 iPhone 上选择“信任此电脑”,并按提示完成验证。
2. 开启开发者模式
在 iPhone 上依次打开:
设置 → 隐私与安全性 → 开发者模式
打开开关后按照提示重启设备。重启完成后,再确认一次“打开”。
3. 获取设备 ID
在 Mac 的“终端”中执行:```
xcrun devicectl list devices``
在输出列表中找到自己的 iPhone。该行Identifier` 一栏显示的值就是设备 ID(UDID),后续命令需要使用它。4. 设置模拟位置
将下面命令中的
你的设备ID替换为实际 UDID,并填写目标地点的纬度和经度:```
xcrun devicectl device simulate location coordinate \
--device 你的设备ID \
--latitude=40.7580 \
--longitude=-73.9855```上面的坐标是纽约时代广场示例。设置其他地点时,替换经纬度即可。
参数注意事项
- 纬度范围为南北方向,南纬使用负数。
- 经度范围为东西方向,西经使用负数。
- 参数必须使用等号形式,例如
--longitude=-73.9855。- 不要写成
--longitude -73.9855,否则负号可能被命令行解析为新的参数,从而出现Missing value for '--longitude'错误。如果命令执行成功,终端会显示类似以下提示:```
Set location to: 40.7580, -73.9855在 iPhone 上: - 确认“定位服务”已开启。 - 打开苹果自带的“地图”,检查当前位置是否已变为目标地点。 - 打开“天气”App,确认显示的地区天气是否对应目标地点。 拔掉数据线后的效果 按照原文实测,位置设置完成后可以拔掉数据线,模拟位置仍会保持,不需要持续连接 Mac。设备重启后模拟位置会失效;再次使用时,需要重新连接 Mac 并执行设置命令。 恢复真实定位 在终端执行以下命令即可清除模拟位置:``` xcrun devicectl device simulate location clear --device 你的设备ID ```清除后,设备将恢复使用真实定位。 快速流程``` 连接并信任 iPhone ↓ 开启开发者模式并重启 ↓ 使用 devicectl 查询设备 ID ↓ 执行 simulate location coordinate 设置坐标 ↓ 用“地图”和“天气”验证 ↓ 需要恢复时执行 simulate location clear ```该方法出处https://x.com/jamesmv49/status/2106649446398505446?s=46 实际效果展示   主楼 - ps3chinamj2026-10-1321455
^-^
- CAngel2026-10-1353611
^-^ mac上原生有模拟的方法吗
- BoYaJun2026-10-131209
mac 上面暂时没有找到,只找到了 iPhone的
- AEgean2026-10-1313409
这样修改出来海拔始终是0吧?