Simulator 8.0 在哪里存储文件

Posted

技术标签:

【中文标题】Simulator 8.0 在哪里存储文件【英文标题】:Where Does Simulator 8.0 Store Files 【发布时间】:2014-07-24 05:25:15 【问题描述】:

我在 Xcode-6 Beta for ios 8 中找不到新模拟器数据的目录

它不在 ~/Library/Application Support/iPhone Simulator/

Where does the iPhone Simulator store its data?

【问题讨论】:

你可能要小心 iOS 8 和 Xcode 6 问题...它仍在保密协议下 感谢您的提醒 - 我不明白为什么会有这些标签 ***.com/questions/24290989/… 试试这个链接...***.com/questions/24133022/… 【参考方案1】:

类似这样的:

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

设备 ID 可能有点难以找到(基本上,您拥有的每个模拟器都有一个具有随机名称的文件夹)。为了找到正确的文件夹,我使用了这个终端命令:

find ~ -name myFile.txt

myFile.txt 是我的应用程序中的文件之一。然后终端打印出完整的位置——如果你有一个可以搜索的文件(或者,可以制作一个),这对你来说可能比逐个检查更有用。

【讨论】:

IIRC,在 apple.stackexchange.com 上他们不允许这样的问题(在 NDA 下的产品上) 如果您的应用程序使用 CoreData,一个绝妙的技巧是搜索 sqlite 文件的名称。找到 ~ -name my_app_db_name.sqlite 您如何知道 APPLICATION ID? 您可以在 xCode 的设备列表中找到设备 ID。您可以转到 xCode->Window->Devices 或按 ⇧⌘2 (Shift+Command+2) 按钮。然后选择你需要的模拟器,选中它,在Device Information下查看Identifier【参考方案2】:

在 XCode 6 中很难找到。但我这样做很简单:

打开 XCode 后,只需在 Debug Area 中写入:

po [NSBundle mainBundle]

或记录:

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

结果是这样的:

之后,您可以打开终端应用程序并使用以下命令转到路径:

打开你的AppPath...


[更新]

我发现了一个很棒的应用程序:http://simpholders.com/

【讨论】:

这是最好的答案! Swift 3 - po Bundle.main【参考方案3】:

要在 iOS 8 Simulator 中找到应用的 Documents 文件夹,您可以先在 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

【讨论】:

【参考方案4】:

好的,尝试手动查找内容让我很沮丧。我会把我的笔记放在上面,以显示什么似乎不起作用。

SimPHolders 是有效的,并且让我感到非常欣慰。去谷歌上查询。下载它。运行。享受吧。

【讨论】:

【参考方案5】:

XCode6 中的 Simulators 目录移动到:

Library ▸ Developer ▸ CoreSimulator

应用程序文件夹的完整路径:

~/ ▸ Library ▸ Developer ▸ CoreSimulator ▸ Devices ▸ 5D71993D-78C2-49F4-9B30-99D0307D3A2F ▸ data ▸ Containers ▸ Data ▸ Application ▸ AE50273B-993C-45DA-97E8-3F88E4B64BDE ▸ Documents ▸ xyz.sqlite

【讨论】:

【参考方案6】:

打开模拟器,进入硬件->设备->管理设备。

一个窗口显示,概述了每个可用的模拟器,以及每个模拟器的唯一标识符。

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

进入那里后,您仍然需要进一步深入...在我的情况下,我发现我必须导航到数据/容器/数据/应用程序,然后在里面查找具有今天日期的文件夹。

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

再次感谢 Apple,让我们 i​​OS 开发人员获得了丰厚的就业机会!

【讨论】:

但是!还是个谜。因为在我删除了那个数据目录的内容(例如Library/Caches)之后,我再次在模拟器中运行我的应用程序,并且内容永远不会重新填充。【参考方案7】:

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

- (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
...

【讨论】:

以上是关于Simulator 8.0 在哪里存储文件的主要内容,如果未能解决你的问题,请参考以下文章

Swift Simulator 文件夹位置

向 iphone Simulator 添加自签名证书?

将自签名证书添加到iphone Simulator?

Xcode 8.0 NSManagedObject 子类模板在哪里

为参数化变量创建shell脚本[重复]

重新启用 iPhone Simulator 定位服务