我正在努力了解我的iphone应用中的问题。
我的sqlite数据库中有一个set方法,看起来它工作正常。我在设置值时执行NSLog并且它是正确的。这是一个值为“2010-10-10 12:13:14”的字符串。
当我对相同数据使用get方法时,结果表明该值不正确。它返回1.
有没有办法打开iPhone模拟器内的数据库文件,这样我就可以看到模拟器数据库中存储的实际数据是什么?
有没有办法在我的模拟器和实际文件之间嗅探sqlite调用?像Charles或Service Capture这样的东西?
非常感谢!
答案 0 :(得分:23)
如果要查看已创建的数据库,
打开取景器 - >按 SHIFT + 命令 + G - > “〜/ Library / Application Support / iPhone Simulator”然后去。
打开5.0(根据您的模拟器版本) - >应用 - >选择pgm文件夹
- >文件
然后你可以看到数据库
答案 1 :(得分:22)
答案 2 :(得分:7)
答案 3 :(得分: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
答案 4 :(得分:5)
适用于Android和iOS,it's available here
老问题,但Apple似乎不断改变逻辑......
在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’
中提琴!您有数据库路径:)
答案 5 :(得分:3)
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSLog(@"path is %@",documentsDirectory);
上面的代码将打印ur数据库的路径并将其复制。转到查找程序并从菜单中选择转到文件夹( Shift + Win + G )并在此处粘贴路径,它将为您提供核心数据文件的确切路径。保持此窗口打开。
下一步转到Mozilla firefox点击菜单栏选择工具 - &gt; SQLite经理。它将打开一个新窗口。在新窗口中单击打开的文件,然后在当前窗口中拖动coredata文件的路径,然后单击打开。
注意 - 您必须在Mozilla Firefox中安装了SQLite Manager。
答案 6 :(得分:0)
对于2019年和2020年答案:⚠️
这很容易。使用名为 Simsim (https://github.com/dsmelov/simsim)的免费开源应用程序。
阅读自述文件,那里有直接下载链接。
选择Finder,然后从Documents
中找到 .sqlite 数据库文件,或使用针对您的应用程序文件夹的Finder搜索功能。