You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过命令行/脚本控制iOS模拟器切换「Freeway Drive」模式?

如何通过命令行/脚本控制iOS模拟器切换「Freeway Drive」模式?

嘿,这个问题我之前折腾定位自动化测试的时候刚好踩过坑!其实xcrun simctl的能力比你想的要全,控制「Freeway Drive」高速行驶模拟的功能,就藏在它的location子命令里,不用找第三方工具,一条命令就能搞定。

下面给你一步步拆解操作:

  • 第一步:先锁定目标模拟器的标识符
    如果你同时运行多个模拟器,得先指定操作哪一个。用这条命令可以列出所有可用模拟器:

    xcrun simctl list devices
    

    输出里会显示每个模拟器的名称、UDID(唯一标识符)和状态(比如Booted代表正在运行)。你可以直接用名称或者UDID来指定目标,UDID更不容易重名出错,比如ABC123-4567-890D-EFGH-IJKL12345678。
    要是只想快速找到正在运行的模拟器,加个过滤更高效:

    xcrun simctl list devices | grep Booted
    
  • 第二步:一键切换到Freeway Drive模式
    直接用simctl location的simulate子命令,传入模拟器标识符和「Freeway Drive」场景名称即可:

    # 用UDID指定模拟器的例子
    xcrun simctl location ABC123-4567-890D-EFGH-IJKL12345678 simulate "Freeway Drive"
    
    # 用模拟器名称指定的例子(比如你的模拟器叫"iPhone 15")
    xcrun simctl location "iPhone 15" simulate "Freeway Drive"
    

    执行完这条命令,你打开模拟器里的定位类APP,就能看到位置在模拟高速路持续移动的状态了。

  • 额外实用操作:停止模拟/切换其他场景
    要是想停止定位模拟,用这条命令:

    xcrun simctl location <模拟器标识符> stop
    

    另外苹果还内置了其他预设模拟场景,比如「City Bicycle Ride」「Run」,把命令里的场景名称换成对应字符串就能直接切换,用法完全一致。

  • 脚本自动化小技巧
    如果你想写脚本自动处理,不用手动复制UDID,可以用命令直接捕获正在运行的模拟器UDID:

    BOOTED_SIM_UDID=$(xcrun simctl list devices | grep Booted | awk -F'[^0-9A-F-]+' '{print $2}')
    xcrun simctl location $BOOTED_SIM_UDID simulate "Freeway Drive"
    

    这样脚本就能自动识别当前运行的模拟器,不用每次手动修改参数~

我自己做定位相关的自动化测试时一直用这套命令,亲测在Xcode 14+的版本上都稳定可用,你可以放心试试!

备注:内容来源于stack exchange,提问作者infoMining

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 11:49:38