有没有办法浏览当前正在运行或已停止的iOS模拟器的文件系统?如果有方法可以查看特定应用程序的文件,我也可以接受。
请注意,我不想以编程方式完成此操作。 我想在Finder中查看/打开文件。
有没有办法浏览当前正在运行或已停止的iOS模拟器的文件系统?如果有方法可以查看特定应用程序的文件,我也可以接受。
请注意,我不想以编程方式完成此操作。 我想在Finder中查看/打开文件。
更新:自iOS 8以来:
~/Library/Developer/CoreSimulator/Devices
之前的位置是:
~/Library/Application Support/iPhone Simulator
它包含所有您曾经运行过的模拟器型号(4.0、4.1、5.0等)的目录,进入您在Xcode中正在运行的模拟器型号所在的目录。
进入文件夹后,进入Applications,选择显示文件日期的Finder选项,并按日期排序。由于您的应用程序刚刚更改了目录,因此您的应用程序将是最新的...
文件夹里包含与您的应用程序相关的所有内容。 您甚至可以在各个运行之间在其中放置文件,例如恢复到已知状态的存储数据库...
我经常去那里,所以我在我的Finder侧边栏中保留了iPhone模拟器目录。
请注意,使用iOS 8后,模拟器文件夹位于完全不同的目录中,实际上分布在几个目录中,并带有每次运行应用程序时都会更改的特定于应用程序的文件夹名称。
~/Library/Developer/CoreSimulator/Devices
~/Library/Developer/CoreSimulator/Devices/{{Device Code}}/data/Containers/Bundle/
修改日期
对~/Library/Developer/CoreSimulator/Devices/
目录进行排序。选择最近修改的即可。 - Stan James{{设备代码}}
。 - TobTobXX基于zsero的回答
macOS 10.13.1
在终端中运行以下命令
模板
open `xcrun simctl get_app_container booted BUNDLEID_OF_YOUR_APP data` -a Finder
完整样本
open `xcrun simctl get_app_container booted com.Test data` -a Finder
您的应用程序的Bundle ID为"Bundle Identifier"
解决方案1的特点
创建一个名为您的应用程序的bash脚本并编写以下代码:
script_file_name = `basename "$0"`
open `xcrun simctl get_app_container booted $script_file_name data`
解决方案 2 的特点
print(NSHomeDirectory())
命令并复制路径。Shift+Cmd+G
。另一种方法是在控制台中捕获一个断点,然后执行 po NSHomeDirectory()
命令。
ViewController
的 viewDidLoad
中。也许我应该写的不是“运行”,而是其他什么东西。谢谢! - Tung Fampo NSHomeDirectory()
。 - TylerJames打开“活动监视器”程序,搜索您的应用程序(只需应用程序名称,不需要模拟器),单击“信息”,然后打开“打开文件和端口”。复制第二个条目(类似于/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/YourApp
)。这是正在运行的应用程序,而<...>/B97A9504-0FA5-4826-BB6D-A2335A676459/VSGradientView.app/
是包,<...>/B97A9504-0FA5-4826-BB6D-A2335A676459/*
是沙盒文件夹。
如果将此作为open "/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/"
传递给终端,则该文件夹将在Finder中打开。
听起来很复杂,但实际并不是。
.app
来查看应用程序的文件系统。 - Yevhen Dubinin如果您想要自动获取位置或在脚本中使用该文件夹,则可以使用以下命令从正在运行的模拟器中获取精确位置:
xcrun simctl get_app_container booted my.app.id data
cd `xcrun simctl get_app_container booted my.app.id data`
。 - app4g对于Swift 4.2及更高版本,打印一个易于使用的路径:
#if targetEnvironment(simulator)
print("::::: SIMULATOR :::::")
if let documentsPath = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path {
print("App Documents Directory:\n\(documentsPath)\n")
}
#endif
...在源代码位置中,例如:
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// ...
return true
}
请使用终端命令行中的cd
或open
跟随生成的路径。 或者,将该路径粘贴到shift-cmd-G
“前往文件夹...”Finder提示框中。
相关的答案包括旧版语言版本:iOS 8 Beta模拟器的文档目录路径
首先,从终端获取带有设备 ID的模拟器列表
然后,在路径下输入设备ID,即可获得特定的模拟器文件系统
~/Library/Developer/CoreSimulator/Devices/{{deviceID}}
虽然这篇文章已经有些年头了,但我认为值得提及一下 SimPholders 这个工具,用于查找模拟器文件。它是一个菜单栏项目,可以跟踪您的模拟器应用程序,并让您直接进入其文件夹和内容。非常棒。
xcrun simctl get_app_container booted my.app.id data
- hyperknot~/simulatorId/Data/Containers/applicationId/
(将 ID 替换为他们使用的 UUID,并查找最近的文件)。 - marksyzm