模拟器8.0存储文件的位置在哪里?

18

1
你可能要小心iOS 8和Xcode 6的问题...它们仍然受到保密协议的限制。 - user2277872
谢谢提醒 - 我不明白为什么会有这些标签。 - Ryan Heitner
https://dev59.com/umAf5IYBdhLWcg3wwlC5 - Amar
请尝试此链接...https://dev59.com/o2Af5IYBdhLWcg3w7mU_#27461267 - Tunvir Rahman Tusher
7个回答

34

像这样的:

/Users/{YOUR NAME}/Library/Developer/CoreSimulator/Devices/{DEVICE ID}/data/Containers/Data/Application/{APPLICATION ID}/

设备 ID 可能有点难找(基本上,每个模拟器都有一个看起来很随机的文件夹名称)。要进入正确的文件夹,我使用了以下终端命令:

find ~ -name myFile.txt

其中myFile.txt是我应用程序中的一个文件。然后终端打印出完整位置——如果您有一个文件(或者可以创建一个文件)可以搜索,则可能比逐个检查每个文件更有用。


据我所知,在apple.stackexchange.com上,他们不允许这样的问题(关于受NDA保护的产品)。 - Sergio Tulentsev
1
如果您的应用程序使用CoreData,一个巧妙的技巧是搜索sqlite文件的名称。find ~ -name my_app_db_name.sqlite - DiscDev
1
你如何知道应用程序的ID? - KarenAnne
2
你可以在xCode的设备列表中找到设备ID。你可以通过xCode->窗口->设备或按下 ⇧⌘2(Shift+Command+2)按钮来进行操作。然后选择所需的模拟器,选中它并查看设备信息下的标识符。 - Yerkezhan

12

在 XCode 6 中,很难找到它。但我以简单的方式做到了:

只需在已打开的 XCode 中在调试区域中输入以下内容:

po [NSBundle mainBundle]

或记录:

NSLog(@"%@", [NSBundle mainBundle]);

结果大致如下: 输入图像描述 之后,您可以打开终端应用程序,并使用此命令转到路径:

打开您的应用程序路径...


[更新]
我找到了一个很棒的应用程序来完成这个任务:http://simpholders.com/

2
这是最好的答案! - Gustavo Barbosa
Swift 3 - po Bundle.main - koira

2

要在 iOS 8 模拟器中找到一个应用程序的 Documents 文件夹,您可以首先在该文件夹中写入一个文件:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *fileName = [documentsDirectory stringByAppendingPathComponent:@"Words.txt"];
NSString *content = @"Apple";
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil];

didFinishLaunchingWithOptions 方法中,你可以这样做。

然后你可以打开终端并找到该文件夹:

$ find ~/Library -name Words.txt

1

好的,我试图手动查找内容,但是感到非常沮丧。上面的笔记显示了不起作用的方法。

令我感到非常欣慰的是SimPHolders,它确实有效。请搜索并下载SimPHolders,然后运行它。享受吧!


0

在模拟器打开的情况下,去硬件->设备->管理设备。

一个窗口显示出现,列出了可用的每个模拟器和与之相对应的唯一标识。

因此,在Finder中导航到~Library/Developer/CoreSimulator后,你可以通过查找唯一标识来确定哪个目录包含你想要的模拟器。

进入目录后,你仍然需要进一步深入...在我的情况下,我发现我必须进入data/Containers/Data/Application,然后找到里面有今天日期的文件夹。

终于!我到达了我熟悉的Documents和Library文件夹。

再次感谢Apple,让我们iOS开发者保持就业!


然而!仍然是个谜。因为在我删除了那个数据目录的内容(例如Library/Caches)之后,我再次在模拟器中运行我的应用程序,但是这些内容从未重新填充。 - Nathan Gopen

0

XCode6中的模拟器目录已经移动到:

Library ▸ Developer ▸ CoreSimulator

应用程序文件夹的完整路径:
~/ ▸ Library ▸ Developer ▸ CoreSimulator ▸ Devices ▸ 5D71993D-78C2-49F4-9B30-99D0307D3A2F ▸ data ▸ Containers ▸ Data ▸ Application ▸ AE50273B-993C-45DA-97E8-3F88E4B64BDE ▸ Documents ▸ xyz.sqlite

0

您可以在应用程序委托的“didFinishLaunchingWithOptions”方法中添加NSLogs,以便它们打印出您的路径。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
#if TARGET_IPHONE_SIMULATOR
    NSLog(@"APP BUNDLE :: %@", [NSBundle mainBundle]);
    NSLog(@"APP DOCUMENTS :: %@", [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
#endif
...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接