首页 > 解决方案 > React Native iOS 无法定位 sqlite 数据库

问题描述

我在 React Native 上运行WatermelonDB (它使用 SQLite)。我正在使用 iOS 模拟器,并且正在尝试定位数据库文件,以便可以直接对其进行查询。似乎我能够成功地保存到数据库中,因为我可以从应用程序中查询数据并且它会被持久化。

使用htop,我已经能够找到我的应用程序在模拟器上运行的运行过程。但是,当我cd进入该目录时,我看不到任何.db文件。我什至可以转到所有模拟器的根目录~/Library/Developer/CoreSimulator/Devices/ack所有 db 文件,但仍然没有任何显示。

接下来,我尝试在 Xcode 中启动该应用程序,因为我遇到了其他建议检查 Xcode 日志的帖子,这应该显示数据库位置。唉,这没有向我显示任何信息。

鉴于我找不到db文件,我首先有兴趣知道任何东西是如何被持久化的。

其次,我应该从 Xcode 构建我的应用程序,还是可以使用命令行react-native run-ios?我可以看到运行此命令在后台使用 Xcode,但我不确定使用 Xcode 是否有好处。尽管如此,使用 Xcode 并没有为我提供我正在寻找的答案。

注意:这不是thisthis的重复,因为我已遵循所有建议但无法得出结论

标签: ios-simulator

解决方案


您可以通过以下方式在您的机器上找到由 iOS 模拟器创建的 watermelon.db 文件:

cd /Users/<your username>/Library/Developer/CoreSimulator/Devices
find . -name "watermelon.db"

这将向您展示由模拟器创建的 watermelon.db 文件的实例。然后,您可以将输出带到 SQLite 检查器并打开/Users/<your username>/Library/Developer/CoreSimulator/Devices + {file path from find}.

如果您有多个结果,那么您可能需要通过使用将 ID 与模拟器匹配来推断哪个模拟器是哪个模拟器xcrun instruments -s devices


推荐阅读