logo NodeSeekbeta

【分享】一个简单的 iPhone 修改定位的新方法(iOS27 依旧能用)

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 上:

  1. 确认“定位服务”已开启。
  2. 打开苹果自带的“地图”,检查当前位置是否已变为目标地点。
  3. 打开“天气”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

实际效果展示
image
image
image

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有73049位seeker

🎉欢迎新用户🎉