• BoYaJun

    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
    
    实际效果展示
    
    ![图片](https://img.cdn1.vip/i/6acde8d2527ef_1791879378.webp)
    
    ![图片](https://img.cdn1.vip/i/6acde8d084b9f_1791879376.webp)
    
    ![图片](https://img.cdn1.vip/i/6acde8dae6591_1791879386.webp)
    主楼
  • ps3chinamj

    ^-^

    #1
  • CAngel

    ^-^ mac上原生有模拟的方法吗

    #2
  • BoYaJun

    mac 上面暂时没有找到,只找到了 iPhone的

    #3
  • AEgean

    这样修改出来海拔始终是0吧?

    #4

发表回复

登录后回复