我有一个SQLite数据库,我用它来存储应用程序数据,我可以查看它内部以调试我遇到的问题-但是iPhone模拟器通常在哪里存储它的数据?


当前回答

Xcode在哪里存储模拟器和运行时

运行时

$ open ~/Library/Developer/CoreSimulator/Profiles/Runtimes

例如:iOS 13.0, watchOS 6.0。到目前为止,这些占用的空间最多。每一个都可以达到~5GB

设备

$ open ~/Library/Developer/CoreSimulator/Devices

例如:iPhone Xr, iPhone 11 Pro Max。这些文件通常都小于15 mb。

解释

模拟器在运行时和设备之间被分割。如果您运行$ xcrun simctl list,您可以看到概览,但是如果您想找到这些模拟器的物理位置,请查看我所展示的这些目录。

删除您不支持的运行时是完全安全的。如果您愿意,可以稍后重新安装。

其他回答

简单地这样做:

NSString *docDirPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)objectAtIndex:0];
NSLog(@"%@", docDirPath);

你会得到这样的想法:

/用户/ admin /图书馆/开发/ CoreSimulator /设备/ 58 b5b431-d2bb-46f1-aff3-dfc789d189e8 /数据/集装箱/数据/应用程序/ 6 f3b985f - 351 - e - 468 - f - 9 - cfd bcbe217a25fb /文档

去那里,你会看到应用的文档文件夹,不管XCode的版本是什么。(在Finder中使用“Go to Folder…”命令并指定路径“~/library”)。

字符串路径的Swift版本:

let docDirPath =
NSSearchPathForDirectoriesInDomains(.documentDirectory,
                                    .userDomainMask, true).first
print(docDirPath)

和文件夹URL:

let docDirUrl =
    FileManager.default.urls(for: .documentDirectory,
                             in: .userDomainMask).first
print(docDirUrl)

还有另一种(更快的?)方法可以在没有终端的情况下找到你的应用数据:

在模拟器中启动应用程序 开放活动监视器 在CPU选项卡中找到应用程序的名称 双击打开“打开文件和端口”

为Xcode6 - iOS8 +

~ /图书馆/开发/ CoreSimulator /设备/[的DeviceID] /数据/集装箱/数据/应用程序/ [AppID] /

接受的答案对于SDK 3.2是正确的- SDK 4用它可以模拟的每个遗留的iPhone OS/iOS版本的数字替换该路径中的/User文件夹,因此路径变成:

~/Library/Application Support/iPhone Simulator/[OS version]/Applications/[appGUID]/

如果你安装了之前的SDK,它是3.1。X模拟器将继续将其数据保存在:

~/Library/Application Support/iPhone Simulator/User/Applications/[appGUID]/

我没有与这个程序的从属关系,但如果你正在寻找打开任何这在finder simholder使它非常容易。

对于不经常使用Xcode的react原生用户,你可以使用find。打开终端,通过数据库名称进行搜索。

$ find ~/Library/Developer -name 'myname.db'

如果你不知道确切的名称,你可以使用通配符:

$ find ~/库/开发人员名'myname.*'