set-simulator-location完整使用手册:坐标模拟、地点搜索与指定模拟器选项速查

📅 2026/8/23 12:12:35
set-simulator-location完整使用手册:坐标模拟、地点搜索与指定模拟器选项速查
set-simulator-location完整使用手册:坐标模拟、地点搜索与指定模拟器选项速查【免费下载链接】set-simulator-locationCLI for setting location in the iOS simulator项目地址: https://gitcode.com/gh_mirrors/se/set-simulator-locationset-simulator-location 是一款面向 iOS 模拟器定位模拟的轻量级命令行工具,支持坐标模拟与地点搜索,可一条命令为所有已启动的模拟器设置模拟位置。无论是测试地图类 App、位置相关功能,还是调试 LBS 逻辑,它都能帮你快速完成 iOS 模拟器定位设置。一、set-simulator-location 是什么? 在开发 iOS 应用时,经常需要让模拟器出现在某个地理位置,比如旧金山的 Lyft HQ 或某座城市的坐标点。手动在 Xcode 中操作繁琐且无法重复执行,而set-simulator-location将这一操作变成了简单的一条 shell 命令:坐标模拟:-c 纬度 经度,精确到小数点后任意位地点搜索:-q 地点关键词,基于自然语言地图搜索,自动解析为坐标多模拟器批量生效:默认作用于所有已启动(Booted)的模拟器单台指定:通过-s 名称或-u UDID只影响一台模拟器它的原理并不神秘:工具通过xcrun simctl list -j devices查询模拟器状态,再通过DistributedNotificationCenter向模拟器发送com.apple.iphonesimulator.simulateLocation通知,核心实现位于 sources/notification.swift 与 sources/simulators.swift。二、安装步骤在 macOS 上安装非常简单,任选一种方式:1. 使用 Homebrew(推荐)brew install lyft/formulae/set-simulator-location2. 使用 Mintmint install lyft/set-simulator-location3. 从源码构建并安装git clone https://gitcode.com/gh_mirrors/se/set-simulator-location cd set-simulator-location make installmake install会先通过swiftc编译出可执行文件,再安装到/usr/local/bin(可通过PREFIX变量覆盖),编译规则定义在 Makefile 中。 提示:卸载可执行make uninstall即可。三、快速上手:两种核心用法用法一:设置指定坐标(-c)当你知道目标经纬度时,使用-c参数:set-simulator-location -c 37.7765 -122.3918执行成功后终端会输出:Setting location to 37.7765 -122.3918坐标解析逻辑在 sources/coordinate.swift 中:必须提供恰好两个数字(纬度、经度),且会被校验合法性。值得注意的是,0 0(坐标原点)会被视为无效输入,这一细节写在 sources/coordinateextension.swift 的isValid扩展里。用法二:自然语言地点搜索(-q)不想查坐标?直接把地名当作查询词:set-simulator-location -q Lyft HQ San Francisco工具会调用 MapKit 的MKLocalSearch发起地图搜索,取第一个搜索结果的坐标写入模拟器,实现位于 sources/query.swift。这意味着:支持中文、英文等自然语言地点描述搜索无结果时会报错:No locations found for 你的关键词结果以第一条地图数据为准,建议关键词尽量精确(城市地标)四、指定模拟器:-s 与 -u 选项详解默认情况下,定位会应用到所有已启动的模拟器。如果只想改其中一台,有两种精确方式:按名称指定(-s)set-simulator-location -q Lyft HQ San Francisco -s iPhone X匹配规则是大小写不敏感的完全匹配,实现在 sources/simulators.swift 的getSimulators(named:from:)。⚠️ 注意:如果有多台同名且都已启动的模拟器,定位会应用到全部同名设备,而不仅仅是其中一台。按 UDID 指定(-u)set-simulator-location -c 31.2304 121.4737 -u 1A2B3C4D-XXXX-XXXX-XXXX-XXXXXXXXXXXXUDID 是模拟器的唯一标识,是最不会出错的指定方式。无效的 UUID 格式会直接报错,解析代码见 sources/cli.swift。选项速查表选项含义示例-c 纬度 经度按坐标设置位置-c 37.7765 -122.3918-q 关键词地点搜索设置位置-q Tokyo Tower-s 名称指定模拟器(按名称,不区分大小写)-s iPhone X-u UDID指定模拟器(按唯一标识)-u xxxx-xxxx缺省作用于所有已启动模拟器(无需参数)完整用法格式:set-simulator-location [-c 0 0|-q San Francisco] [-s Simulator Name|-u Simulator udid]五、常见错误与排查 所有错误信息都定义在 sources/errors.swift,读懂它们能快速定位问题:错误信息原因解决办法No simulators are currently booted没有已启动的模拟器先在 Xcode 中启动一台模拟器No booted simulators named XXX名称匹配不到(或未启动)用xcrun simctl list devices核对名称No booted simulators with udid: XXXUDID 不存在或未启动确认目标模拟器已 BootedCoordinate: ... is invalid坐标超出合法范围检查经纬度范围(纬度 ±90,经度 ±180)No locations found for XXX地图搜索无结果更换更具体、更常见的地点名称Expected 2 numbers, got ...-c后不是两个数字-c后必须紧跟纬度、经度两个数值 一个小技巧:如果命令行提示了 Usage 用法行,说明参数解析失败,对照上文速查表检查参数顺序即可。六、Xcode 14 之后还需要它吗?从 Xcode 14 起,系统自带的xcrun simctl location已经可以完成大多数定位操作,甚至支持设置路线。但它不支持地点搜索——这正是 set-simulator-location 的核心价值:一句话把自然语言地名变成模拟器位置,并且支持批量作用于多台模拟器,非常适合写进 CI 脚本或测试前的环境准备步骤中。七、项目结构一览整个工具代码量小巧,全部 Swift 源码位于sources/目录,结构清晰:sources/main.swift:参数解析与主流程sources/coordinate.swift/coordinateextension.swift:坐标解析与合法性校验sources/query.swift:MapKit 地点搜索sources/simulators.swift:模拟器列表获取与筛选sources/notification.swift:向模拟器发送定位通知sources/errors.swift/result.swift/stderr.swift:错误与输出处理Package.swift:SwiftPM 包描述Makefile:构建、安装、打包脚本想参与开发?克隆仓库后运行make即可命令行构建,运行make xcode可生成 Xcode 工程;贡献流程参见 CONTRIBUTING.md。总结set-simulator-location 用极低的成本解决了模拟器定位这一高频痛点:-c精确坐标模拟,适合自动化脚本-q自然语言地点搜索,适合快速调试-s/-u精准定位单台模拟器默认批量生效,省去逐台操作的麻烦装上它,你的 iOS 位置测试流程会快上一个台阶 【免费下载链接】set-simulator-locationCLI for setting location in the iOS simulator项目地址: https://gitcode.com/gh_mirrors/se/set-simulator-location创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考