iPhone核心数据模拟器

10

我创建了一个使用核心数据的应用程序。有没有一种方法可以在模拟器上查看sqlite数据库?是否有工具可以查询模拟器上的sqlite数据库?就像数据浏览器一样?

是否有一种方法可以浏览iPhone模拟器以查找sqlite数据库位置?

6个回答

14

使用Xcode 6,模拟器基目录可以在此找到:

~/Library/Developer/CoreSimulator/Devices/<device-id>/data/Containers/Data/Application

然后,数据库本身可以在文档目录中找到:

<app-id>/Documents/<name>.sqlite

可以使用命令行上的sqlite3访问数据库。


1
目前被接受的答案已不再正确。请节约您的赞成票,以使这个答案成为首选! - dave

11

Xcode 5

我刚刚下载了Base的试用版本,并通过以下方式将其指向模拟器中的.sql数据库:

/Macintosh HD/Users/"用户名"/Library/Application Support/iPhone Simulator/"当前 iOS开发版本"/Applications/

应用程序的文件夹名称不可读,但是如果您点击文件夹,就可以看到带有熟悉名称的内容。

Xcode 6+

Xcode 6以上的版本更改了这一点,现在位于~/Library/Developer/CoreSimulator/Devices/<设备ID>/data/Containers/Data/Appl‌​action,其中数据库本身可以在文档目录下找到 <应用程序ID>/Documents/<名称>.sqlite


4
从XCode 6+开始,这不正确了。请查看~/Library/Developer/CoreSimulator/Devices/<device-id>/data/Containers/Data/Application - djbp
有人知道如何在xCode中获取<device-id>吗? - WINSergey

1
如果您已经安装了免费的sqlite3,您可以通过命令行执行以下操作:
/Users/<user>/Library/Application\ Support/iPhone\ Simulator/<sim_version>/Applications/<apphash>/Documents/<yourfile>

查看应该窥视的哈希值最简单的方法:

ls -lt /Users/<user>/Library/Application\ Support/iPhone\ Simulator/<sim_version>/Applications/

您可以在提示符下运行.tables以查看哪些表格存在,并使用.schema <tablename>来检查其列。

1

试试Lita,它是免费的,而且相当不错。


0

这是一个相当旧的帖子,不过我正在寻找其他东西,结果来到了这里,我的看法是:

针对WINSergey的回复: (1) 恢复设备ID和整个路径最简单的方法是打印:

  NSLog(@"app dir: %@",[[[NSFileManager defaultManager]
                     URLsForDirectory:NSDocumentDirectory
                     inDomains:NSUserDomainMask] lastObject]);

然后你会在调试区域或从模拟器中打开系统日志中看到输出。

(2) 此外,要从模拟器中获取设备ID:XCode > 窗口 > 设备 > > 它会在右侧显示标识符。

我还使用SQLiteStudio,它是开源的并且运行良好。


0

我对Firefox的SQLite Manger感到非常满意。这是一个免费的AddOn插件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接