如何在Macbook上的iPhone 6s模拟器上找到SQLite数据库?

时间:2017-01-13 05:27:01

标签: ios sqlite xamarin xamarin.ios

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

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

/用户/ MyMacBook /库/开发商/ CoreSimulator /设备/ A4170C16-A10B-4B48-9C7B-2A310F68B35F /数据/容器/捆绑/应用/ F6C6772C-021A-4B27-874D-071B402DDBCC /

虽然我找不到SQLite数据库。我在VS 2015 Xamarin项目上工作。

我应该如何在模拟器上找到SQLite数据库?

3 个答案:

答案 0 :(得分:3)

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

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

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

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

答案 1 :(得分:2)

通过默认,大多数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

答案 2 :(得分:0)

我习惯使用SimPholders(但它已付款)。我找到了这个名为Open Sim的免费开源替代品。它允许您在模拟器上浏览应用程序的目录。这使得在您的Xamarin应用程序中找到sqlite数据库非常容易,然后您只需要一个sqlite查看器来打开实际的数据库。