【问题标题】:How to find SQLite db on iPhone 6s Simulator in Macbook?如何在 Macbook 的 iPhone 6s 模拟器上找到 SQLite db?
【发布时间】:2017-05-28 10:16:56
【问题描述】:

我正在我的模拟器中搜索我的 SQLLite 数据库。

基于 ActivityMonitor,我可以获取我的应用程序的文件夹路径。

/Users/MyMacBook/Library/Developer/CoreSimulator/Devices/A4170C16-A10B-4B48-9C7B-2A310F68B35F/data/Containers/Bundle/Application/F6C6772C-021A-4B27-874D-071B402DDBCC/

虽然我找不到 SQLite 数据库。我从事 VS 2015 Xamarin 项目。

我应该如何在我的模拟器上找到 SQLite db?

【问题讨论】:

    标签: ios sqlite xamarin xamarin.ios


    【解决方案1】:

    默认情况下,大多数SQLite 库/框架会将Sqlite 文件放在.app 的根目录中。

    当您建立 SQLite 连接时,如果您要为 SQLite 文件提供路径和文件名,请遵循该路径。

    使用sqlite-net的示例:

    var db = new SQLiteConnection("StackOverflow.sqlite");
    

    地点:

    cd Library/Developer/CoreSimulator/Devices
    find $PWD -name "StackOverflow.sqlite" -print
    
    /Users/sushi/Library/Developer/CoreSimulator/Devices/1EB2B821-E86B-4E9A-9814-1BBEF8FF1AA1/data/Containers/Bundle/Application/11BE399A-F802-4410-8163-32F5A90EB2FF/SQLiteLocation.app/StackOverflow.sqlite
    

    使用Path.GetTempPath的示例:

    var db = new SQLiteConnection(Path.Combine(Path.GetTempPath(), "StackOverflow.sqlite"));
    

    地点:

    cd Library/Developer/CoreSimulator/Devices
    find $PWD -name "StackOverflow.sqlite" -print
    
    /Users/sushi/Library/Developer/CoreSimulator/Devices/1EB2B821-E86B-4E9A-9814-1BBEF8FF1AA1/data/Containers/Data/Application/EED6E9CE-7437-48DD-904D-5F9D5E8AC78F/tmp/StackOverflow.sqlite
    

    【讨论】:

    • 我正在测试由另一个资源开发的项目。我将无法进行任何代码更改。有什么方法可以在不接触代码的情况下查看 sqlite ..
    • @goofyui 您不需要修改任何代码,这些示例说明了您可以在哪里找到 SQLite 文件,具体取决于程序如何命名文件及其位置。获得 SQLie 文件后,您可以使用任何 SQLite 管理工具打开它。
    【解决方案2】:

    使用 `didFinishLaunchingWithOptions' 中 appDelegate 中的代码查找 sqlite 文件的位置

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        print(FileManager.default.urls(for: .documentDirectory, in: .userDomainMask))
    }
    

    每次运行应用程序时,您都可以在 Xcode 控制台中找到打印的位置。

    我正在使用应用程序simMagnifier 来查看 SQLite 文件

    【讨论】:

    • 我下载了 SimMagnifer 并且能够看到我的应用程序在上面列出。它说,“这个应用程序不支持核心数据”..
    • 谢谢@Arasuvel,我用 SimMagnifer 进行了测试。它有助于。非常感谢您的帮助..!!!!
    【解决方案3】:

    我曾经使用过 SimPholders(但它是付费的)。我发现了这个名为Open Sim 的免费开源替代品。它使您可以浏览模拟器上的应用程序目录。它使得在 Xamarin 应用中定位 sqlite 数据库变得非常容易,然后您只需要一个 sqlite 查看器即可打开实际的数据库。

    【讨论】:

    • 我安装了 SimPholders,我应该如何配置或查看文件夹路径
    • 您应该不需要配置。只需在菜单中选择您部署到的模拟器,然后选择您想要的应用程序。
    • 我用 SimPholders 和 SimMagnifer 进行了测试。我发现 SimMagnifer 很有帮助。再次感谢您。
    • 您可以在这里找到 simMagnifier:microedition.biz/simMagnifier/index.html
    猜你喜欢
    • 2015-12-06
    • 1970-01-01
    • 2016-06-19
    • 1970-01-01
    • 2020-10-31
    • 2017-04-18
    • 2016-03-02
    相关资源
    最近更新 更多