Xcode 6 iPhone模拟器应用程序支持位置

Hen*_*ing 136 xcode core-data ios xcode6 ios8

在Xcode 6中,我有一个应用程序,我正在使用Core Data,但iOS 8 iPhone模拟器的应用程序支持中没有文件夹.我的文件和Core Data sqlite数据库存储在哪里?

Sco*_*ner 294

模拟器目录已被Xcode 6 beta移动到......

~/Library/Developer/CoreSimulator
Run Code Online (Sandbox Code Playgroud)

将目录浏览到应用程序的Documents文件夹有点困难,例如,

~/Library/Developer/CoreSimulator/Devices/4D2D127A-7103-41B2-872B-2DB891B978A2/data/Containers/Data/Application/0323215C-2B91-47F7-BE81-EB24B4DA7339/Documents/MyApp.sqlite
Run Code Online (Sandbox Code Playgroud)

  • NSLog(@"app dir:%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]); - 将打印数据文件夹的完整路径 (88认同)
  • `xcrun simctl list`命令可用于查看模拟器名称和设备UDID之间的对应关系.或者更具体地说是`xcrun simctl list devices`命令. (32认同)
  • 这是正确的,但似乎有更多的内部文件夹更改.这是在Xcode Beta 3中适用于我的路径:`〜/ Library/Developer/CoreSimulator/Devices/B2C6629C-998D-4E84-9ADB-06CAF5BA4B89/data/Containers/Data/Application/62593001-FADA-4647-AA80- FE9973956C05 /文档/` (4认同)
  • 我需要一个持久的快捷方式到我的应用程序的文档目录,以便快速调试.申请后doFinishLaunchingWithOptions.`#if DEBUG NSString*appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"]; NSString*aliasPath = [NSString stringWithFormat:@"XCodePaths /%@",appName]; remove([aliasPath UTF8String]); [[NSFileManager defaultManager] createSymbolicLinkAtPath:aliasPath withDestinationPath:DOCS_DIR error:nil]; #endif`现在我有了一个可以工作的simlink,即使iOS8 + XCode6每次构建都会改变我的应用程序的数据GUID. (2认同)

uca*_*tit 36

我建议您使用SimPholders找到您的模拟器文件.它是一个菜单栏项,可跟踪您的模拟器应用程序,并允许您直接转到其文件夹和内容.这很棒.


Ama*_*mar 21

我发现SimulatorManager应用程序非常有用.它将直接带您到已安装的模拟器的应用程序文件夹.我尝试过使用7.1,8.0和8.1模拟器.

SimulatorManager作为系统托盘中的图标驻留,并提供"在登录时启动"选项.

在此输入图像描述

注意:这仅适用于Xcode 6(在我的情况下为6.1.1)及更高版本.

希望有所帮助!


him*_*man 11

要知道您的.sqlite文件存储在AppDelegate.m中的位置,请添加以下代码

- (NSURL *)applicationDocumentsDirectory
{
    NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory      inDomains:NSUserDomainMask] lastObject]);

    return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory     inDomains:NSUserDomainMask] lastObject];
 }
Run Code Online (Sandbox Code Playgroud)

现在在AppDelegate.m中调用此方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

  //call here
   [self applicationDocumentsDirectory];

}
Run Code Online (Sandbox Code Playgroud)


Nat*_*Uni 6

这对我来说非常有用:

let dirPaths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
println("App Path: \(dirPaths)")
Run Code Online (Sandbox Code Playgroud)