iPhone模拟器在哪里存储数据?

我有一个SQLite数据库,我正在使用来存储应用程序数据,我可以做一个看看它里面debugging我遇到的问题 – 但iPhone模拟器存储数据,通常在哪里?

SDK 3.2接受的答案是正确的–SDK 4用每个可以模拟的旧版iPhone OS / iOS版本的号码replace该path中的/ User文件夹,所以path变成:

〜/库/应用程序支持/ iPhone模拟器/ [操作系统版本] /应用程序/ [appGUID] /

如果您以前安装了以前的SDK,则其3.1.x模拟器将继续将其数据保存在:

〜/ Library / Application Support / iPhone Simulator / User / Applications / [appGUID] /

对于Xcode6和iOS8

〜/库/开发商/ CoreSimulator /设备/ [的DeviceID] /数据/容器/数据/应用/ [的AppID] /

find了:

 ~/Library/Application Support/iPhone Simulator/User/ 

iOS 8〜/ Library / Developer / CoreSimulator / Devices / [Device ID] / data / Applications / [appGUID] / Documents /

在Lion上, Users/[username]/Library被隐藏。

要在Finder中简单查看,请点击屏幕顶部的“Go”菜单,然后按住“alt”键显示“Library”。

点击“库”,你可以看到你以前隐藏的库文件夹。

以前build议:

使用

 chflags nohidden /users/[username]/library 

在terminal上显示该文件夹。

还有另一种(更快?)的方式来查找你的应用程序数据没有terminal:

  1. 在模拟器中启动应用程序
  2. 打开活动监视器
  3. 在CPU选项卡中find您的应用程序的名称
  4. 双击它并打开“打开文件和端口”

在这里输入图像说明

看起来Xcode 6.0已经再次移动了这个位置,至less对于iOS 8模拟器来说。

〜/库/开发商/ CoreSimulator /设备/ [的DeviceID] /数据/容器/数据/应用/ [的AppID]

使用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应用程序的hexstring。

一个最简单的方法来find应用程序在模拟器中的位置。 用户“NSTemporaryDirectory()”

脚步-

  1. 在应用程序的任何位置应用断点并运行应用程序。
  2. 当应用程序在断点停止时,在Xcode控制台中input以下命令。

    po NSTemporaryDirectory()

请参阅下面的图片以获得正确的洞察 在这里输入图像说明

现在你有到临时文件夹的确切path。 你可以回去看看所有的应用程序相关的文件夹。

希望这也有帮助。 快乐编码:)

如果模拟器正在运行,您可以获取任何应用程序容器的path:

 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 

“引导”可以替代大多数simctl命令在任何设备的UDID预计。

您可以使用xcrun simctl list查看设备xcrun simctl list并使用xcrun simctl help获取有关特定命令的xcrun simctl help

更新 :通过Xcode 8.3中的stream行请求,您现在可以通过附加“app”,“data”,“groups”或应用程序组标识符来指定所需的容器types。

获取数据容器:

 $ xcrun simctl get_app_container booted com.example.app data 

在iOS 5中:

/ Users / [User Name] / Library / Application Support / iPhone Simulator / 5.0 / Applications / [AppGUID] /

对于Xcode 4.6,它被存储在以下path中…

/用户/ [当前用户] /库/应用程序支持/ iPhone模拟器/ 6.1 /应用程序/

以编程方式知道它使用下面的代码

  NSLog(@"path:%@",[[NSBundle mainBundle]bundlePath]); 

只要做到这一点。

 NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0]; NSLog(@"%@", docDirPath); 

你会得到这样的想法:

/用户/pipe理员/库/开发商/ CoreSimulator /设备/ 58B5B431-D2BB-46F1-AFF3-DFC789D189E8 /数据/集装箱/数据/应用/ 6F3B985F-351E-468F-9CFD-BCBE217A25FB /文档

去那里,你会看到你的应用程序的文档文件夹,无论XCode的版本。 (在Finder中使用“转到文件夹…”命令并指定一个path“〜/ library”)。

对于iOS 8

要find“ 文档”文件夹,可以在“文档”文件夹中编写一个文件:

 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

然后你可以打开一个terminal并find该文件夹​​:

 $ find ~/Library -name Words.txt 

如果任何人还在狮子遇到这个问题,有一个伟大的文章与19个不同的技巧来查看您的〜/库目录。 在这里findDan Frakes的文章http://www.macworld.com/article/161156/2011/07/view_library_folder_in_lion.html

记住模拟器的目录如下

〜/图书馆/应用程序支持/ iPhone模拟器/用户/

你可以尝试使用下面的代码

 NSString *fileName = @"Demo.pdf"; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName]; NSLog(@"File path%@",pdfFileName); 

要打开您在应用程序中的模式是在模拟器上的xCode中创build的,请执行以下操作:

  1. 打开Finder萤幕(笑脸图标)
  2. 然后点击GO – >转到文件夹
  3. 键入:〜/ Library / Application Support / iPhone Simulator
  4. 目录是不同模拟器的iOS版本
  5. 子目录是在模拟器上安装的应用程序
  6. Documents文件夹是用户生成内容的地方,它被备份到iCloud上