我无法找到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似乎最近更改了文件的位置。
答案 0 :(得分:0)
我假设您正在引用 Core Data SQLite文件。
我认为Apple最近没有对文件位置进行任何更改。
默认情况下,如果您的应用程序是基于核心数据基于文档的应用程序(使用UIManagedDocument
)(这种情况很少见),我认为文档文件会进入Documents
子文件夹应用程序的容器(沙盒)中。但是,如果您的应用程序是非常常见的非基于文档的核心数据应用程序,那么单个SQLite文件将进入应用程序容器的Application Support
子文件夹 em>(沙盒)。
您问题中的NSLog()调用仅查找Documents
子文件夹。如果您的应用不是基于文档的,请将常量从NSDocumentDirectory
更改为NSApplicationSupportDirectory
。然后查看其打印路径。
例如,在我的Core Data非基于文档的应用程序中,该应用程序在iOS 12模拟器中运行,并记录了“应用程序支持文件夹”打印路径:
/Users/jk/Library/Developer/CoreSimulator/Devices/BB85B11A-5C2C-4CBC-AB4F-891C74E6FD3A/data/Containers/Data/Application/A973B1C6-4E71-43DD-8F21-6A55903E071B/Library/Application Support
答案 1 :(得分:0)
我终于找到了它。
-用户->用户名->右键单击显示库文件夹
-运行控制台命令:xcrun simctl list
这将显示您正在使用的模拟器的ID。
-导航到/ Users / jk / Library / Developer / CoreSimulator / Devices /,然后选择与找到的ID匹配的模拟器文件。
-在查找器搜索中,搜索当前模型版本名称。
对我来说,最终结果是: MacintoshHD▸Users▸userName▸Library▸Developer▸CoreSimulator▸Devices217E2EB2-139F-4568-B1D0-A6B9EE701198▸data▸容器▸数据 ▸应用程序▸C69F7670-3589-4F17-BEB0-79E290206676▸库▸应用程序支持▸AppName->核心数据版本名称。
答案 2 :(得分:0)
这个answer可以为您提供帮助吗?
我认为您真正需要的是可以处理文件的SQLite编辑器 路径会自动更改,因此您不必担心什么 路径实际上变为了,对吧?
如果答案是肯定的,请尝试SQLiteFlow,它可以在 App Store,并在其文档中显示:
处理数据库文件名或目录更改。这使得SQLiteFlow可以与iOS中的SQLite数据库友好地工作 模拟器。