Xcode 9问题:无法在模拟器文件夹中找到.sqlite数据库
解决iPhone模拟器中SQLite数据库文件找不到的问题
我之前也碰到过类似的情况,重装macOS和Xcode后,模拟器的文件存储路径确实容易发生变化,给你几个靠谱的解决方法:
方法1:通过Xcode直接定位App沙盒容器
- 打开你的Xcode项目,启动iPhone 6s模拟器并运行App
- 点击Xcode顶部菜单栏的
Window>Devices and Simulators(快捷键Shift+Command+2) - 在弹出的窗口左侧选择
Simulators,找到你正在使用的iPhone 6s模拟器 - 右侧App列表里找到你的目标应用,点击下方的
Show Container按钮,这会直接打开该App的沙盒根目录 - 进入
Data>Documents文件夹,你的.sqlite文件应该就在这里
方法2:手动查找模拟器沙盒路径
重装系统或Xcode后,模拟器的默认存储路径通常在:
~/Library/Developer/CoreSimulator/Devices/
- 打开Finder,按下
Command+Shift+G,粘贴上面的路径回车 - 这里会有一堆带UUID的文件夹,每个对应一个模拟器实例
- 要找到iPhone 6s对应的文件夹:右键打开文件夹内的
device.plist文件,查找productType字段,值为iPhone8,1的就是iPhone 6s模拟器 - 进入对应模拟器文件夹后,找到
data/Containers/Data/Application/目录,这里的每个UUID文件夹对应一个安装在该模拟器上的App - 可以通过查看每个App文件夹下
Library/Preferences里的plist文件(包含App的Bundle ID)来定位你的目标App,进入后就能找到Documents目录里的.sqlite文件
方法3:在代码中打印数据库绝对路径
如果上面的方法还是没找到,直接在App代码里加一行打印,输出数据库的准确路径:
// Swift 示例 if let docDir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first { let dbPath = docDir.appendingPathComponent("你的数据库文件名.sqlite").path print("数据库路径:\(dbPath)") }
// Objective-C 示例 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSString *dbPath = [documentsDirectory stringByAppendingPathComponent:@"你的数据库文件名.sqlite"]; NSLog(@"数据库路径:%@", dbPath);
运行App后,在Xcode控制台复制这个路径,用Finder的Command+Shift+G直接跳转就能找到文件。
内容的提问来源于stack exchange,提问作者user9373173
相关产品推荐
相关产品推荐

