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

如何在Bash中获取最近使用的iOS模拟器及其中最新更新应用的文件路径

获取最近运行iOS模拟器中最新构建应用存储路径的Bash实现

直接可用的完整脚本

#!/bin/bash

# 依赖jq解析JSON,无jq的版本可参考下文替换本段逻辑
LATEST_SIM_UUID=$(xcrun simctl list devices --json | jq -r '.devices | values[] | sort_by(-.lastBootedAt) | .[0] | select(.isAvailable == true) | .udid')
if [ -z "$LATEST_SIM_UUID" ]; then
    echo "错误:未找到可用的已启动iOS模拟器,请先启动目标模拟器"
    exit 1
fi

# 模拟器应用沙盒存储根目录
SIM_SANDBOX_ROOT="$HOME/Library/Developer/CoreSimulator/Devices/$LATEST_SIM_UUID/data/Containers/Data/Application"

# 取修改时间最新的目录即为最新构建的应用沙盒路径
LATEST_APP_SANDBOX=$(ls -td "$SIM_SANDBOX_ROOT"/*/ 2>/dev/null | head -n 1)
if [ -z "$LATEST_APP_SANDBOX" ]; then
    echo "错误:当前模拟器下未找到已安装的应用,请先运行一次目标应用后重试"
    exit 1
fi

echo "最新应用沙盒根路径:"
echo "$LATEST_APP_SANDBOX"

使用说明

  • 依赖要求:默认脚本使用jq处理JSON格式的模拟器列表,若未安装可执行brew install jq完成安装;不想安装jq的话可将获取LATEST_SIM_UUID的代码替换为以下纯文本处理逻辑:
    LATEST_SIM_UUID=$(xcrun simctl list devices | grep -v 'unavailable' | grep '(' | sort -r | head -n 1 | awk -F '[()]' '{print $2}')
    
  • 路径使用:输出的路径为iOS应用沙盒的根目录,包含Documents、Library、tmp三个标准子目录。SQLite数据库通常存放在Documents或Library/Application Support路径下,直接拼接数据库文件名即可得到DBeaver等工具所需的完整连接路径
  • 额外需求:如果需要获取应用安装包(.app)的路径,可将脚本中data/Containers/Data/Application替换为data/Containers/Bundle/Application即可

内容的提问来源于stack exchange,提问作者Micheal Wells

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 06:15:00