我找不到IOS模拟器的sqlite文件。我需要该文件,以便检查数据库中的数据进行调试。
以前我会用途:
NSLog(@"Documents Directory: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
获取文件的位置,然后将其粘贴到Finder中。现在它给了我:
file:///var/mobile/Containers/Data/Application/7DA7CB97-948B-41C6-BFA3-A50E6FF4C8B3/Documents/
Apple最近似乎更改了文件的位置。
4条答案
按热度按时间yptwkmov1#
我假设您指的是 Core Data SQLite文件。
我不认为苹果最近对文件位置做了任何更改。
默认情况下,如果您的应用是基于Core Data * 文档的 * 应用(使用
UIManagedDocument
)(这种情况很少见),我认为文档文件会进入应用的 Container(沙箱)的Documents
子文件夹。但如果您的应用是Core Data * 非基于文档的 * 应用(这很常见),则单个SQLite文件将进入应用的 Container(沙箱)的Application Support
子文件夹。问题中的NSLog()调用仅查找
Documents
子文件夹。如果您的应用不是基于文档的,请将常量更改为NSDocumentDirectory
到NSApplicationSupportDirectory
。然后看看它打印的路径。例如,在我的Core Data非基于文档的应用程序中,在iOS 12模拟器中运行,记录应用程序支持文件夹的路径打印:
ojsjcaue2#
我终于找到了它在哪里。
这将显示您正在使用的模拟器的ID。
对我来说最终的结果是:Macintosh HD ▸ Users ▸ userName ▸ Library ▸ Developer ▸ CoreSimulator ▸ Devices ▸ 217E2EB2-139F-4568-B1D0-A6B9EE701198 ▸ data ▸ Containers ▸ Data ▸ Application ▸ C69F7670-3589-4F17-BEB0-79E290206676 ▸ Library ▸ Application Support ▸ AppName -> Core Data version name.
py49o6xq3#
请问answer可以给予你一些帮助吗?
我认为您真正需要的是一个SQLite编辑器,它可以自动处理文件路径更改,因此您不必担心路径实际更改为什么,对吗?
如果答案是肯定的,那么给予SQLiteFlow,它可以在App Store上找到,从它的文档中可以看出:
处理数据库文件名或目录更改。这使得SQLiteFlow可以在iOS模拟器中友好地与您的SQLite数据库一起工作。
vuktfyat4#
iOS .sqlite文件位置
将下一个参数添加到方案中
之后,您将能够找到位置的文件
例如:
请注意,可以有多个.sqlite文件。按名称查找您的