在 Xcode 6 中,我正在使用 Core Data 的应用程序,但是在 iOS 8 iPhone 模拟器的 Application Support 文件夹中找不到任何文件夹。我的文件和 Core Data sqlite 数据库存储在哪里?
NSString * NSTemporaryDirectory ( void );
NSLog(@"FILE PATH :%@", NSTemporaryDirectory());
NSHomeDirectory()
。在Xcode 10(或Xcode 11)中最简单的方法是暂停您的应用程序(例如当它遇到断点时),并在调试器控制台中运行此行:po NSHomeDirectory()
po
代表打印对象,可以打印大部分内容。
1. NSTemporaryDirectory() gives this:
/Users/spokaneDude/Library/Developer/CoreSimulator/Devices/1EE69744-255A-45CD-88F1-63FEAD117B32/data/Containers/Data/Application/199B1ACA-A80B-44BD-8E5E-DDF3DCF0D8D9/tmp
2. remove "/tmp" replacing it with "/Library/Application Support/<app name>/" --> is where the .sqlite files reside
这里是上一个使用的模拟器和应用程序的sh。只需运行sh并复制打印的文本,然后运行命令以在Finder中显示。
#!/bin/zsh
lastUsedSimulatorAndApplication=`ls -td -- ~/Library/Developer/CoreSimulator/Devices/*/data/Containers/Data/Application/*/ | head -n1`
echo $lastUsedSimulatorAndApplication
使用Swift 4,您可以使用以下代码获取应用程序的主目录。您的应用程序文档目录在其中。
print(NSHomeDirectory())
我认为您已经知道您的应用程序主目录是可更改的,因此如果您不想向您的代码库添加其他代码,SimPholder是一个不错的工具。
而且,您可能会想知道是否有一种工具,可以帮助您节省时间,避免每次更改应用程序主目录后都要关闭和重新打开相同的SQLite数据库。答案是肯定的,我知道的一个工具是SQLiteFlow。从它的文档中可以看到:
处理数据库文件名或目录更改。这使得SQLiteFlow可以与iOS模拟器中的SQLite数据库友好地工作。