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:
- 在模拟器中启动应用程序
- 打开活动监视器
- 在CPU选项卡中find您的应用程序的名称
- 双击它并打开“打开文件和端口”
看起来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()”
脚步-
- 在应用程序的任何位置应用断点并运行应用程序。
-
当应用程序在断点停止时,在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的,请执行以下操作:
- 打开Finder萤幕(笑脸图标)
- 然后点击GO – >转到文件夹
- 键入:〜/ Library / Application Support / iPhone Simulator
- 目录是不同模拟器的iOS版本
- 子目录是在模拟器上安装的应用程序
- Documents文件夹是用户生成内容的地方,它被备份到iCloud上