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


当前回答

如果模拟器正在运行,你可以得到任何应用程序的容器的路径:

xcrun simctl get_app_container booted <app bundle identifier>

示例输出:

$ xcrun simctl get_app_container booted com.example.app
/Users/jappleseed/Library/Developer/CoreSimulator/Devices/7FB6CB8F-63CB-4F27-BDAB-884814DA6FE0/data/Containers/Bundle/Application/466AE987-76BC-47CF-A207-266E65E7DE0A/example.app

在任何需要设备UDID的地方,“boot”都可以替换为大多数simctl命令。

您可以使用xcrun simctl list查看设备列表,并使用xcrun simctl help获取有关特定命令的帮助。

更新:在Xcode 8.3中,你现在可以通过添加"app"、"data"、"groups"或应用组标识符来指定你想要的容器类型。

获取数据容器:

$ xcrun simctl get_app_container booted com.example.app data

其他回答

对于Xcode 4.6,它被存储在以下路径…

/Users/[currentuser]/Library/Application Support/iPhone Simulator/6.1/Applications/

要通过编程方式了解它,请使用以下代码

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

找到应用程序在模拟器中的位置最简单的方法之一。用户“NSTemporaryDirectory ()

步骤,

在应用程序内任意位置应用断点并运行应用程序。 当应用程序在断点处停止时,在Xcode控制台中键入以下命令。 阿宝NSTemporaryDirectory ()

请看下面的图片,以获得正确的见解

现在你有了临时文件夹的确切路径。您可以返回并查看所有应用程序相关的文件夹。

希望这也能有所帮助。快乐编码:)

您可以尝试使用下面的代码

NSString *fileName = @"Demo.pdf";
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *pdfFileName = [documentsDirectory stringByAppendingPathComponent:fileName];
    NSLog(@"File path%@",pdfFileName);

在iOS 5中:

/Users/[用户名]/库/应用程序支持/iPhone模拟器/5.0/应用程序/[AppGUID]/

发现:

~/Library/Application Support/iPhone Simulator/User/