访问 iPhone 模拟器根目录和主目录

Posted

技术标签:

【中文标题】访问 iPhone 模拟器根目录和主目录【英文标题】:access iPhone simulator root and home directories 【发布时间】:2014-09-09 08:01:58 【问题描述】:

我需要找到 iPhone 模拟器根目录/ 和主目录~ 所在的路径。使用NSFileManager,我可以打印它们的内容,但是我需要在其中放置一些文件,以便我可以在模拟器中使用我的应用程序打开它们。

我的操作系统是 mac-mini 上的OS X 10.9.4

更新:

基本上我需要访问模拟器文件系统而不是相对于应用程序的沙盒位置,这是因为我需要使用绝对路径测试我的应用程序。例如,如果那是一张 sd 卡或只是一些其他已知位置。

强调我的要求。使用此代码:

    NSFileManager* fileManager = [NSFileManager defaultManager];
    NSArray* rootContent = [fileManager contentsOfDirectoryAtPath:@"/" error:nil];
    NSLog (@"ROOT dir contains:");
    for (NSString* fileName in rootContent)
        NSLog (@"%@", fileName);

我得到这个输出:

2014-07-18 11:08:02.893 appName[34509:60b] ROOT dir contains:
2014-07-18 11:08:02.893 appName[34509:60b] .DocumentRevisions-V100
2014-07-18 11:08:02.894 appName[34509:60b] .file
2014-07-18 11:08:02.894 appName[34509:60b] .fseventsd
2014-07-18 11:08:02.894 appName[34509:60b] .hotfiles.btree
2014-07-18 11:08:02.894 appName[34509:60b] .PKInstallSandboxManager
2014-07-18 11:08:02.894 appName[34509:60b] .Spotlight-V100
2014-07-18 11:08:02.894 appName[34509:60b] .Trashes
2014-07-18 11:08:02.895 appName[34509:60b] .vol
2014-07-18 11:08:02.895 appName[34509:60b] Applications
2014-07-18 11:08:02.895 appName[34509:60b] bin
2014-07-18 11:08:02.895 appName[34509:60b] cores
2014-07-18 11:08:02.895 appName[34509:60b] dev
2014-07-18 11:08:02.895 appName[34509:60b] etc
2014-07-18 11:08:02.895 appName[34509:60b] home
2014-07-18 11:08:02.895 appName[34509:60b] Library
2014-07-18 11:08:02.896 appName[34509:60b] mach_kernel
2014-07-18 11:08:02.896 appName[34509:60b] net
2014-07-18 11:08:02.896 appName[34509:60b] Network
2014-07-18 11:08:02.896 appName[34509:60b] private
2014-07-18 11:08:02.896 appName[34509:60b] sbin
2014-07-18 11:08:02.896 appName[34509:60b] System
2014-07-18 11:08:02.896 appName[34509:60b] tmp
2014-07-18 11:08:02.897 appName[34509:60b] User Information
2014-07-18 11:08:02.897 appName[34509:60b] Users
2014-07-18 11:08:02.897 appName[34509:60b] usr
2014-07-18 11:08:02.897 appName[34509:60b] var
2014-07-18 11:08:02.897 appName[34509:60b] Volumes

所以这是一个根目录 / 目录内容,我想在我的 OS-X 文件系统中访问它,如果可能的话,如果不可能的话,如果有任何其他内容,那就太好了我可以使用我的应用程序和具有已知绝对路径的文件系统访问的位置。

【问题讨论】:

【参考方案1】:

如果您尝试在 Mac 上打开该文件夹,您可以使用名为 SimHolder 的软件。 如果您想在 ios 模拟器上的 iPhone 应用程序中访问这些文件夹,则无法在 iOS 应用程序的沙箱之外打开任何文件夹。

【讨论】:

这是一个有用的程序,谢谢。然而,这不是我所要求的。我需要访问绝对目录,而不是相对于我的应用程序,我能够访问它们,而且这个程序做同样的事情,只是我看到它更方便。我可以通过我的应用程序查看 iOS 模拟器的根目录和主目录上的内容,但是我无法找到这些位置在我的文件系统中的位置。基本上我需要的是一些可以通过绝对路径访问的通用目录,并且不一定在应用程序的上下文中。 你能更新你的答案吗?您说我无法在我的 iPhone 应用程序中访问“这些”文件夹。从上下文来看,您似乎在说我无法访问应用程序的文档和其他文件夹,但实际上我可以,它都在 /Users//Library/Application\ Support/iPhone\ Simulator/7.1/Applications/ /,就像其他人所说的那样。但这让我想知道您是否意味着无法访问应用程序之外的任何目录。这将是正确的答案。如果你愿意更新它,我可以接受它:)。 当然,这条规则也有例外,看起来应用程序可以通过提供访问权限并提供该目录的绝对路径来共享其目录(或目录 Documents :?),但仅限于只读访问.但是这个我自己没有试过,只是读了一下,所以如果我错了你可以纠正我:)。【参考方案2】:

在我的机器上所有已安装的应用程序都存在:

/Users/dom/Library/Application\ Support/iPhone\ Simulator/7.1/Applications/

【讨论】:

【参考方案3】:

另一个简单的方法是:

打开查找器 从 finder 菜单栏(在顶部)找到 go 选项并选择“Go to Folder”

将您的路径 - /Users/userName/Library/Application Support/iPhone Simulator - 放在转到文件夹选项中。

您想要打开的文件夹。

您现在可以将其拉到取景器左侧的收藏夹中。

【讨论】:

如果找不到文件夹,请在终端中输入:- chflags nohidden ~/Library/【参考方案4】:

我建议你使用一个名为 simpholders 的应用程序:http://simpholders.com/

它会在您的 mac 菜单栏中放置一个图标,让您可以轻松访问您在模拟器上运行的任何 iOS 应用程序的文件夹。

【讨论】:

以上是关于访问 iPhone 模拟器根目录和主目录的主要内容,如果未能解决你的问题,请参考以下文章

如何将文件放入库目录以进行 iphone 设备测试

如何在构建时自动重置 iPhone 模拟器

linux创建账户并自动生成主目录和主目录下的文件

如何从 iPhone 中后台进程的名称访问(复制/修改)特定的 appfile 目录?

linux创建账户并自动生成主目录和主目录下的文件

在 iPhone 上的 Supporting Files 目录中访问 .html 文件