我有一个SQLite数据库,我用它来存储应用程序数据,我可以查看它内部以调试我遇到的问题-但是iPhone模拟器通常在哪里存储它的数据?


当前回答

iOS 8 ~ /图书馆/开发/ CoreSimulator /设备/[设备ID] /数据/应用程序/ [appGUID] /文件/

其他回答

如果有人仍然在lion中遇到这个问题,有一篇很棒的文章提供了19个查看~/Library目录的技巧。在这里找到Dan Frakes的文章http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html

记住模拟器的目录如下所示

~/库/应用程序支持/iPhone模拟器/用户/

Xcode在哪里存储模拟器和运行时

运行时

$ 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,您可以看到概览,但是如果您想找到这些模拟器的物理位置,请查看我所展示的这些目录。

删除您不支持的运行时是完全安全的。如果您愿意,可以稍后重新安装。

在Xcode 5中,你可以使用以下代码:

#import <Foundation/NSFileManager.h>

and:

NSString *homeDir = NSHomeDirectory();
NSLog(@"%@",homeDir);

结果看起来像这样:

"/Users/<your user name>/Library/Application Support/iPhone Simulator/7.1/Applications/hhhhhhhh-hhhh-hhhh-hhhh-hhhhhhhhhhhh"

hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh是一个十六进制字符串,用来识别你的iOS应用程序。

在iOS 5中:

/Users/[用户名]/库/应用程序支持/iPhone模拟器/5.0/应用程序/[AppGUID]/

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