ios-simulator - 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 并没有为我提供我正在寻找的答案。
解决方案
您可以通过以下方式在您的机器上找到由 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
推荐阅读
- javascript - Socket.io - TypeError:socket.in 不是函数
- javascript - DataTables 从 JSON 或 JS Array&Objects 填充表格
- reactjs - 渲染组件的问题
- android - 奖励视频广告服务器未填充。加载失败?安卓
- php - 根据用户 = 产品作者启用 woocommerce 支付网关
- python - Python:从 for 循环中创建一个列表
- php - 即使 allow_url_fopen = On,file_get_contents() 也会返回空
- c# - 在 Web 表单中选中复选框时如何在数据库中自动存储值
- java - Swagger 忽略引用架构的架构属性
- angular - Angular Form数组重复字段问题