有没有办法浏览当前正在运行或刚刚杀死的iOS模拟器的文件系统?如果能够做到这一点,我会满足于能够看到特定应用程序的文件。
请注意,我不想以编程方式执行此操作。我想在Finder中查看/打开文件。
答案 0 :(得分:212)
更新:自iOS 8以来:
<强>〜/库/开发商/ CoreSimulator /设备
过去的位置:
〜/ Library / Application Support / iPhone Simulator
它有你运行的所有模拟器模型(4.0,4.1,5.0等)的目录,转到你在Xcode中运行的模拟器。
进入文件夹后,转到“应用程序”,选择显示文件日期的“查找程序”选项,然后按日期排序。您的应用程序将是最新的,因为它只是更改了目录...
目录中包含与您的应用程序相关的所有内容。您甚至可以在运行之间删除文件,以恢复到已知状态的存储数据库,例如......
我经常去那里,我将iPhone模拟器目录保存在我的Finder边栏中。
请注意,对于iOS8,模拟器文件夹位于一个完全不同的目录中 - 实际上是分散在几个目录中,每次运行应用程序时,应用程序特定文件的文件夹名称都会更改。
答案 1 :(得分:73)
~/Library/Developer/CoreSimulator/Devices
~/Library/Developer/CoreSimulator/Devices/{{Device Code}}/data/Containers/Bundle/
答案 2 :(得分:27)
打开程序“活动监视器”,搜索您的应用程序(只是应用程序名称,而不是模拟器),单击“信息”并打开“打开文件和端口”。复制第二个条目(类似/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中打开。
听起来很复杂但不是。
答案 3 :(得分:13)
基于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
BUNDLEID_OF_YOUR_APP =&#34;捆绑标识符&#34;
解决方案的功能1
创建一个包含应用名称和代码的bash脚本:
script_file_name = `basename "$0"`
open `xcrun simctl get_app_container booted $script_file_name data`
解决方案2的功能
答案 4 :(得分:9)
答案 5 :(得分:9)
print(NSHomeDirectory())
并复制路径。Shift+Cmd+G
1。的替代方法是捕获一个断点并在控制台中执行po NSHomeDirectory()
。
答案 6 :(得分:2)
旧帖子,但我认为值得一提的是SimPholders来查找你的模拟器文件。它是一个菜单栏项,可跟踪您的模拟器应用程序,并允许您直接转到其文件夹和内容。这太棒了。
答案 7 :(得分:1)
根据@zsero的回答,我制作了一个简短的bash
脚本,它直接打开你的应用程序ID的模拟器文件夹。非常方便!
<强> openappfolder.sh 强>
#!/bin/bash
APPID=$1
if OUTPUT=`xcrun simctl get_app_container booted $APPID data` ; then
open $OUTPUT
else
echo "$APPID not found!"
fi 2>/dev/null
然后只是
openappfolder.sh com.bundle.id
答案 8 :(得分:0)
在Xcode版本8.2.1(8C1002)上,我发现在此路径中的模拟器上安装了.app文件:~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator
答案 9 :(得分:0)
对于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
“转到文件夹...”查找器提示中。
相关答案,其中包括较旧的语言版本:Document Directory Path of iOS 8 Beta Simulator
答案 10 :(得分:0)
首先,从终端获取具有设备ID 的模拟器列表
然后将设备ID放在路径下面。您将获得特定的模拟器文件系统
parent.child.Add(child1);