【问题标题】:Open sqlite database file inside iphone simulator?在iphone模拟器中打开sqlite数据库文件?
【发布时间】:2011-06-06 12:15:37
【问题描述】:

我很难理解我的 iPhone 应用程序中的问题。

我的 sqlite 数据库中有一个 set 方法,看起来工作正常。我在设置值时执行 NSLog 并且它是正确的。这是一个值为“2010-10-10 12:13:14”的字符串。

当我对相同的数据使用get方法时,结果发现值不正确。它返回 1。

有什么方法可以打开 iPhone 模拟器中的数据库文件,这样我就可以看到模拟器数据库中存储的实际数据是什么?

有什么方法可以嗅探我的模拟器和实际文件之间的 sqlite 调用吗?像 Charles 或 Service Capture 之类的?

非常感谢!

【问题讨论】:

标签: iphone xcode sqlite


【解决方案1】:

你可以参考下面的链接,你肯定可以看看模拟器里面存储的数据库。

How to view the data in sqlite file running in iphone application?

干杯

【讨论】:

    【解决方案2】:

    如果要查看自己创建的数据库,

    Open finder -> 按 SHIFT + Command + G -> "~/Library/Application Support/iPhone Simulator" 然后去。

    打开 5.0(根据您的模拟器版本)-> 应用程序-> 选择 pgm 文件夹

    -> 文件

    然后就可以看到数据库了

    【讨论】:

      【解决方案3】:

      对于 6.1 的模拟器,位置不同。

      开始于:

      ~/Library/Application Support/iPhone Simulator/6.1/Applications/
      

      在您的模拟器上打开代表应用程序的文件夹。名称将如下所示:

      0951F670-1DAC-9A39-450A-B8EEFFC0FFE1
      

      如果您有多个文件夹,则可以单击每个文件夹并查看应用程序图标,直到找到您要查找的应用程序。或者,从模拟器中卸载除您感兴趣的应用之外的所有其他应用。

      从这个文件夹中,到这里:

      Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite
      

      总路径应如下所示:

      ~/Library/Application Support/iPhone Simulator/6.1/Applications/<APP_ID>/Library/Application Support/<APP_NAME>/<APP_NAME>.sqlite
      

      【讨论】:

        【解决方案4】:

        从 IOS 8 开始,他们将其放在不同的文件夹中:

        Library/Developer/CoreSimulator/Devices/(numbers and letters)/data/Containers/Data/Application/(numbers and letters)/Documents/

        Check this answer for more info

        【讨论】:

          【解决方案5】:
          NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
          NSString *documentsDirectory = [paths objectAtIndex:0];
          
          NSLog(@"path is %@",documentsDirectory);
          

          上面的代码将打印你的数据库的路径并复制它。转到finder并从菜单中选择go to folder (Shift+Win+G) 并在此处粘贴路径,它将为您提供核心数据文件的确切路径。保持此窗口打开。

          下一步转到 Mozilla firefox 点击菜单栏选择工具 -> SQLite 管理器。它将打开新窗口。在新窗口中点击打开的文件并在当前窗口中拖动coredata文件的路径并点击打开。

          注意 - 您必须在 Mozilla firefox 中安装 SQLite Manager。

          【讨论】:

            【解决方案6】:

            更新:我制作了一个自动化工具

            适用于 Android 和 iOS,it's available here


            老问题,但苹果似乎一直在改变逻辑......

            在 macOS Sierra 上,您可以通过发出以下命令找到数据库位置(模拟器必须在此过程中运行!)

            ps aux | grep 'CoreSimulator/Devices'
            

            结果应该列出模拟器的路径,例如:

            /Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/data/var/run/launchd_bootstrap.plist
            

            导航到现在找到的模拟器文件夹:

            cd /Users/user1/Library/Developer/CoreSimulator/Devices/25C1F5DA-E528-4BC2-B684-A92D382553AC/Data/Application/
            

            此文件夹包含所有模拟器应用程序

            如果您知道数据库名称,请从这里找到它,如下所示:

            find ./ -type f -name 'my_db.db’
            

            还有中提琴!你有数据库路径:)

            【讨论】:

            • 使用 CoreSimulator 11.0 (SimulatorApp-912.1 SimulatorKit-570.3 CoreSimulator-681.5.1) 版本,我们在 Apple 的朋友变得更加聪明。 ps -aux |grep 'CoreSimulator/设备'。返回不是应用程序真实路径的东西。 /.../CoreSimulator/Devices/E02979D7-17B7-43A7-B66B-AC3921CD6B85/data/Containers/Bundle/Application/1BB978A7-6922-479D-9D03-262AD614B980/MY_APP.app/MY_APP 使用查找命令是有必要剥离 Containers 段之外的所有内容。
            【解决方案7】:

            对于 2019 年和 2020 年的回答:⚠️

            这很容易。使用名为 Simsim (https://github.com/dsmelov/simsim) 的免费开源应用程序。

            阅读自述文件,那里有一个直接下载链接。


            选择 Finder,然后您可以在 Documents 中找到 .sqlite db 文件,或使用 Finder 的搜索功能定位您的应用程序文件夹。

            【讨论】:

              【解决方案8】:

              Xcode 12.5+

              1. 找到.sqlite的路径
              let fileManager = FileManager.default
              let databasePath = try fileManager.url(
                              for: .applicationSupportDirectory,
                              in: .userDomainMask,
                              appropriateFor: nil,
                              create: true
                          )
                          .appendingPathComponent("yourDatabaseName.sqlite")
                          .path
              
              1. 转到文件

              打开查找器 -> 按 SHIFT + Command + G -> 越过“文件路径”然后继续。

              1. v查看 sqlite 文件并查询它

              https://inloop.github.io/sqlite-viewer/

              【讨论】:

                猜你喜欢
                • 2011-02-15
                • 2023-03-03
                • 2011-05-24
                • 2016-03-02
                • 1970-01-01
                • 2018-11-22
                • 2012-07-30
                • 2016-08-03
                • 1970-01-01
                相关资源
                最近更新 更多