我有一个用于存储应用数据的SQLite数据库,我可以查看它来调试我遇到的问题 - 但是iPhone模拟器在哪里存储其数据,通常是什么? / p>
答案 0 :(得分:268)
SDK 3.2的接受答案是正确的 - SDK 4将该路径中的 / User 文件夹替换为可以模拟的每个旧版iPhone OS / iOS版本的编号,因此路径变为:
〜/ Library / Application Support / iPhone Simulator / [OS version] / Applications / [appGUID] /
如果您同时安装了以前的SDK,其3.1.x模拟器将继续将其数据保存在:
〜/ Library / Application Support / iPhone模拟器/用户/应用程序/ [appGUID] /
适用于Xcode6和iOS8
〜/库/开发商/ CoreSimulator /设备/ [的DeviceID] /数据/容器/数据/应用/ [的AppID] /
答案 1 :(得分:78)
找到它:
~/Library/Application Support/iPhone Simulator/User/
答案 2 :(得分:77)
还有另一种(更快的?)方法可以找到没有终端的应用数据的位置:
答案 3 :(得分:72)
iOS 8 〜/ Library / Developer / CoreSimulator / Devices / [Device ID] / data / Applications / [appGUID] / Documents /
答案 4 :(得分:66)
狮子会隐藏Users/[username]/Library
。
要在Finder中查看,请点击屏幕顶部的“转到”菜单,然后按住“alt”键以显示“图书馆”。
点击“图书馆”,您可以看到以前隐藏的图书馆文件夹。
之前建议:
使用
chflags nohidden /users/[username]/library
在终端中显示文件夹。
答案 5 :(得分:31)
使用Xcode 5,您可以使用以下代码:
#import <Foundation/NSFileManager.h>
和
NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);
结果可能看起来像:
"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"
其中hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh
是标识您的iOS应用的一些十六进制字符串。
答案 6 :(得分:30)
看起来Xcode 6.0再次移动了这个位置,至少对于iOS 8模拟器而言。
〜/库/开发商/ CoreSimulator /设备/ [的DeviceID] /数据/容器/数据/应用/ [的AppID]
答案 7 :(得分:30)
在某个地方赶上一个断点。
在控制台窗口中输入 po NSHomeDirectory()
(lldb) po NSHomeDirectory() /用户/ usernam /库/开发商/ CoreSimulator /设备/ 4734F8C7-B90F-4566-8E89-5060505E387F /数据/容器/数据/应用/ 395818BB-6D0F-499F-的αAFE-068A783D9753
答案 8 :(得分:29)
查找应用在模拟器中的位置的最简单方法之一。用户&#34; NSTemporaryDirectory()&#34;
步骤 -
答案 9 :(得分:29)
如果模拟器正在运行,您可以获得任何应用程序容器的路径:
xcrun simctl get_app_container booted <app bundle identifier>
示例输出:
$ xcrun simctl get_app_container booted com.example.app
/Users/jappleseed/Library/Developer/CoreSimulator/Devices/7FB6CB8F-63CB-4F27-BDAB-884814DA6FE0/data/Containers/Bundle/Application/466AE987-76BC-47CF-A207-266E65E7DE0A/example.app
“booted”可以替换为预期设备UDID的大多数simctl
命令。
您可以看到包含xcrun simctl list
的设备列表,并通过xcrun simctl help
获取有关特定命令的帮助。
更新:根据Xcode 8.3中的热门请求,您现在可以通过附加“app”,“data”,“groups”或应用组标识符来指定所需的容器类型。
获取数据容器:
$ xcrun simctl get_app_container booted com.example.app data
答案 10 :(得分:7)
在iOS 5中:
/ Users / [User Name] / Library / Application Support / iPhone Simulator / 5.0 / Applications / [AppGUID] /
答案 11 :(得分:6)
对于Xcode 4.6,它存储在以下路径中......
/ Users / [currentuser] / Library / Application Support / iPhone Simulator / 6.1 / Applications /
要以编程方式了解它,请使用以下代码
NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]);
答案 12 :(得分:6)
只需这样做:
NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);
你会得到这样的想法:
/用户/管理员/库/开发商/ CoreSimulator /设备/ 58B5B431-D2BB-46F1-AFF3-DFC789D189E8 /数据/容器/数据/应用/ 6F3B985F-351E-468F-9CFD-BCBE217A25FB /文件
去那里,无论XCode的版本如何,您都会看到应用的文档文件夹。 (在Finder中使用“转到文件夹...”命令并指定路径“〜/ library”)。
字符串路径的Swift版本:
let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
.userDomainMask, true).first
print(docDirPath)
和文件夹网址:
let docDirUrl =
FileManager.default.urls(for: .documentDirectory,
in: .userDomainMask).first
print(docDirUrl)
答案 13 :(得分:5)
$ open /Library/Developer/CoreSimulator/Profiles/Runtimes
例如:iOS 13.0
,watchOS 6.0
到目前为止占据了最多的空间。每个人最多可容纳约5GB
$ open ~/Library/Developer/CoreSimulator/Devices
例如:iPhone Xr
,iPhone 11 Pro Max
。这些通常每个<15 mb。
模拟器在运行时和设备之间分配。如果运行$ xcrun simctl list
,则可以看到概述,但是,如果要查找这些模拟器的物理位置,请查看我显示的这些目录。
删除不支持的运行时是完全安全的。如果需要,可以稍后重新安装。
答案 14 :(得分:3)
适用于iOS 8
要找到 Documents 文件夹,您可以在Documents文件夹中写入文件:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"Words.txt"];
NSString *content = @"Apple";
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];
说,在didFinishLaunchingWithOptions
。
然后你可以打开终端并找到文件夹:
$ find ~/Library -name Words.txt
答案 15 :(得分:2)
如果有人还在狮子身上遇到这个问题,那么有一篇很棒的文章有19个不同的提示来查看你的〜/ Library目录。在这里找到Dan Frakes的文章http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html
请记住下面给出了模拟器的目录
〜/ Library / Application Support / iPhone Simulator / User /
答案 16 :(得分:0)
对于macOS Catalina,我在以下位置找到了我的数据库:
~/Library/Developer/CoreSimulator/Devices/{deviceId}/data/Containers/Data/Application/{applicationId}/Documents/my.db
要获取applicationId
,我只是按修改日期对文件夹进行了排序,尽管我确定有更好的方法。
答案 17 :(得分:0)
对于不经常使用Xcode的本地用户,您可以只使用find
。打开终端并使用数据库名称进行搜索。
$ find ~/Library/Developer -name 'myname.db'
如果您不知道确切名称,则可以使用通配符:
$ find ~/Library/Developer -name 'myname.*'
答案 18 :(得分:0)
我与该程序没有任何关系,但是如果您要在查找器SimPholders中打开其中任何一个,将使其非常容易。
答案 19 :(得分:0)
要打开您在模拟器上使用xCode构建应用程序的记录,请执行以下操作:
答案 20 :(得分:0)
您可以尝试使用以下代码
NSString *fileName = @"Demo.pdf";
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
NSLog(@"File path%@",pdfFileName);