2011-01-10 50 views
7

我很难在我的iPhone应用程序中了解问题。在iphone模拟器中打开sqlite数据库文件?

我有我的sqlite数据库中的设置方法,看起来像它工作正常。当我设定值并且它是正确的时,我做NSLog。这是一个值为“2010-10-10 12:13:14”的字符串。

当我在相同的数据上使用get方法时,结果是该值不正确。它返回1.

有什么方法可以打开iPhone模拟器中的数据库文件,以便我可以看到模拟器数据库中存储的实际数据是什么?

有没有什么办法来嗅探我的模拟器和实际文件之间的sqlite调用?像查尔斯,或服务捕获?

非常感谢!

+1

可能重复[如何查看在iPhone应用程序中运行的sqlite文件中的数据?](http://stackoverflow.com/questions/4644158/how-to-view-the-data -in-sqlite的文件运行功能于iphone的应用程序) – 2015-11-20 16:48:01

回答

22

如果你想查看已创建的数据库,

打开Finder - >按SHIFT + 命令 + - >“〜 /图书馆/应用程序支持/ iPhone模拟器“,然后去。

开放5.0(按你的模拟器版本) - >应用程序 - >选择PGM文件夹

- >文件

enter image description here

然后你就可以看到数据库

enter image description here

5

对于6.1模拟器,位置不同。

开始在:

~/Library/Application Support/iPhone Simulator/6.1/Applications/ 

公开表示对你的模拟器应用程序的文件夹。该名称将类似于此:

0951F670-1DAC-9A39-450A-B8EEFFC0FFE1 

如果你有多个文件夹,然后您可以点击进入每个文件夹,并期待在应用程序图标,直到你发现你正在寻找应用程序。或者,从模拟器中卸载除感兴趣的应用程序以外的所有其他应用程序。

从这个文件夹里面,去这里:

Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite 

总的路径应该是这样的:

~/Library/Application Support/iPhone Simulator/6.1/Applications/<APP_ID>/Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite 
11

由于IOS 8,他们把它放在不同的文件夹:

Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/

Check this answer for more info

3
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSLog(@"path is %@",documentsDirectory); 

上面的代码将打印你的数据库的路径并复制它。转到查找器并从菜单中选择转到文件夹(Shift + Win + G)并在此处粘贴路径,它将为您提供核心数据文件的确切路径。保持这个窗口打开。

下一步转到Mozilla的Firefox点击菜单栏选择工具 - > SQLite管理器。它会打开新窗口。在新窗口中单击打开的文件并在当前窗口中拖动coredata文件的路径,然后单击打开。

注 - 您必须在Mozilla Firefox中安装了SQLite Manager。

2

更新:我做了一个工具来自动完成这个

无论是对Android和iOS,it's available here


老问题,但苹果似乎保持改变逻辑...

在macOs Sierra您可以通过发出以下命令来找到数据库位置(模拟器必须在此过程中运行!)

ps aux | grep 'CoreSimulator/Devices' 

结果应列出路径模拟器,例如:

/Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/data/var/run/launchd_bootstrap.plist 

导航到现在发现模拟器文件夹:

cd /Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/Data/Application/ 

此文件夹包含所有模拟器应用

从这里如果您知道数据库名称,只需找到它,就像这样:

find ./ -type f -name 'my_db.db’ 

和中提琴!你有数据库路径:)

相关问题