IOS 12中sqlite文件的位置在哪里?

carvr3hs  于 2023-05-18  发布在  SQLite
关注(0)|答案(4)|浏览(223)

我找不到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最近似乎更改了文件的位置。

yptwkmov

yptwkmov1#

我假设您指的是 Core Data SQLite文件。
我不认为苹果最近对文件位置做了任何更改。
默认情况下,如果您的应用是基于Core Data * 文档的 * 应用(使用UIManagedDocument)(这种情况很少见),我认为文档文件会进入应用的 Container(沙箱)的Documents子文件夹。但如果您的应用是Core Data * 非基于文档的 * 应用(这很常见),则单个SQLite文件将进入应用的 Container(沙箱)的Application Support子文件夹。
问题中的NSLog()调用仅查找Documents子文件夹。如果您的应用不是基于文档的,请将常量更改为NSDocumentDirectoryNSApplicationSupportDirectory。然后看看它打印的路径。
例如,在我的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
ojsjcaue

ojsjcaue2#

我终于找到了它在哪里。

  • 用户->用户名->右击显示库文件夹
  • 运行控制台命令:xcrun simctl列表
    这将显示您正在使用的模拟器的ID。
  • 导航到/Users/jk/Library/Developer/CoreSimulator/Devices/并选择与找到的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.
py49o6xq

py49o6xq3#

请问answer可以给予你一些帮助吗?
我认为您真正需要的是一个SQLite编辑器,它可以自动处理文件路径更改,因此您不必担心路径实际更改为什么,对吗?
如果答案是肯定的,那么给予SQLiteFlow,它可以在App Store上找到,从它的文档中可以看出:
处理数据库文件名或目录更改。这使得SQLiteFlow可以在iOS模拟器中友好地与您的SQLite数据库一起工作。

vuktfyat

vuktfyat4#

iOS .sqlite文件位置

将下一个参数添加到方案中

-com.apple.CoreData.Logging.stderr 1
-com.apple.CoreData.SQLDebug 1

之后,您将能够找到位置的文件
例如:

CoreData: annotation: Connecting to sqlite database file at "/Users/User/Library/Developer/CoreSimulator/Devices/DBF9B9A0-ED0C-45E9-BEE0-CA24BE1834D3/data/Containers/Data/Application/7F285D7A-5B39-4D1C-BE48-36AC16F069CD/Library/Storage.sqlite"

请注意,可以有多个.sqlite文件。按名称查找您的

相关问题