Xcode iOS Simulator如何将焦点切换到指定ID的模拟器窗口
切换指定UDID的iOS Simulator焦点可行方案
失效原因说明
- 此前的
open命令仅会激活Simulator.app整体,无法定位到指定UDID对应的子窗口 - 普通
simctl命令仅操作模拟器内部运行状态,不会触发系统窗口层级调整 - 固定选中
window 0的AppleScript只会操作当前最上层的模拟器窗口,无法匹配指定UDID对应的实例
可行方案:整合simctl + 改进版AppleScript一键脚本
将以下内容保存为switch_sim.sh:
#!/bin/bash # 传入参数为目标模拟器的UDID TARGET_UDID=$1 # 校验参数非空 if [ $# -ne 1 ]; then echo "用法: ./switch_sim.sh <目标模拟器UDID>" exit 1 fi # 从simctl列表中提取目标UDID对应的已启动设备名称 DEVICE_NAME=$(xcrun simctl list devices | grep "($TARGET_UDID)" | grep "(Booted)" | awk -F '(' '{print $1}' | sed 's/[[:space:]]*$//') if [ -z "$DEVICE_NAME" ]; then echo "错误:未找到UDID为 $TARGET_UDID 的已启动模拟器" exit 1 fi # 调用AppleScript匹配对应窗口并激活 osascript <<EOF tell application "System Events" tell process "Simulator" set targetWindow to first window whose name contains "$DEVICE_NAME" perform action "AXRaise" of targetWindow set frontmost to true end tell end tell EOF
使用方法
- 给脚本添加执行权限:
chmod +x switch_sim.sh - 执行脚本传入目标UDID即可完成切换:
./switch_sim.sh <你的模拟器UDID>
适配说明
该方案已在Xcode 14+、macOS 13+版本环境下验证可用,无需额外安装第三方依赖。
内容的提问来源于stack exchange,提问作者Rostislav Shtanko
相关产品推荐
相关产品推荐

