是否有任何方法可以浏览当前运行或刚刚关闭的iOS模拟器的文件系统?如果有办法的话,我希望能够看到特定应用程序的文件。
请注意,我不想以编程方式完成此操作。我想在Finder中查看/打开文件。
更新:自iOS 8:
~ /图书馆/开发/ CoreSimulator /设备
以前的位置是:
~/库/应用程序支持/iPhone模拟器
它有你曾经运行过的所有模型模拟器(4.0,4.1,5.0等)的目录,去你在Xcode中运行的那个。
进入文件夹后,转到应用程序,选择显示文件日期的Finder选项,并按日期排序。您的应用程序将是最新的,因为它刚刚更改了目录…
目录中包含与应用程序相关的所有内容。您甚至可以在运行之间将文件放入其中,以恢复到存储在已知状态的数据库,例如…
我经常去那里,我把iPhone模拟器目录放在Finder侧栏里。
注意,在iOS8系统中,模拟器文件夹在一个完全不同的目录中——实际上是分开在几个目录中,应用程序特定文件的文件夹名称在每次运行应用程序时都会改变。
打开“Activity Monitor”程序,搜索你的App(只需要App名称,不需要模拟器),点击“information”,打开“Open files and ports”。复制第二个条目(类似/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/*是沙盒文件夹。
/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中打开。
open "/Users/me/Library/Application Support/iPhone Simulator/4.2/Applications/B97A9504-0FA5-4826-BB6D-A2335A676459/"
听起来很复杂,但事实并非如此。
~/Library/Developer/CoreSimulator/Devices
~/Library/Developer/CoreSimulator/Devices/\{\{Device Code}}/data/Containers/Bundle/
有一个漂亮的应用程序也支持XCode 6模拟器。
https://github.com/somegeekintn/SimDirs < a href = " https://github.com/somegeekintn/SimDirs " > < / >
这是很棒的,使用它!
旧帖子,但我认为值得一提的是SimPholders找到你的模拟器文件。它是一个菜单栏项,跟踪模拟器应用程序,并让您直接进入它们的文件夹和内容。超级棒。
(原始答案:https://stackoverflow.com/a/26557165/377384)
在Xcode Version 8.2.1 (8C1002)上,我发现模拟器上安装的.app文件在这个路径:~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator
~/Library/Developer/Xcode/DerivedData/[APPNAME]-[RANDOM HASH]/Build/Products/Debug-iphonesimulator
如果你想自动获取位置或在脚本中使用该文件夹,你可以使用以下命令从运行模拟器获取精确的位置:
xcrun simctl get_app_container booted my.app.id data
基于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 Identifier"
解决方案的特点
创建一个带有应用程序和代码名称的bash脚本:
script_file_name = `basename "$0"` open `xcrun simctl get_app_container booted $script_file_name data`
解决方案的特点2
基于@zsero的答案,我做了一个简短的bash脚本,直接打开你的应用程序id的模拟器文件夹。非常方便!
bash
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
👍
print(NSHomeDirectory())
Shift+Cmd+G
替代1。是捕获断点并在控制台执行po NSHomeDirectory()。
po NSHomeDirectory()
对于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“转到文件夹…”仪提示。
cd
open
shift-cmd-G
相关答案,包括旧语言版本:iOS 8 Beta模拟器的文档目录路径
首先,从终端获取带有设备ID的模拟器列表
然后将设备id放在路径下面。您将获得特定的模拟器文件系统 ~/Library/Developer/CoreSimulator/Devices/\{\{deviceID}} < / p >
~/Library/Developer/CoreSimulator/Devices/\{\{deviceID}}