我在模拟器中搜索我的SQLLite数据库。
基于ActivityMonitor,我可以获取应用程序的文件夹路径。
/用户/ MyMacBook /库/开发商/ CoreSimulator /设备/ A4170C16-A10B-4B48-9C7B-2A310F68B35F /数据/容器/捆绑/应用/ F6C6772C-021A-4B27-874D-071B402DDBCC /
虽然我找不到SQLite数据库。我在VS 2015 Xamarin项目上工作。
我应该如何在模拟器上找到SQLite数据库?
答案 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查看器来打开实际的数据库。