Xcode 6 / iOS 8模拟器数据和捆绑文件夹脚本

通过对xcode 6的最新更改,它看起来像.app文件和文档文件夹不再驻留在iPhone模拟器目录中的相同文件夹中。

以前,我们可以访问目录和.app文件

/Users/me/Library/Application Support/iPhone Simulator/7.1/Applications/SomeCrpyticNumber 

但在Xcode 6中,模拟器目录是完全不同的:

 ~/Library/Developer/CoreSimulator/Devices/CrypticNumber1/data/Containers/Bundle/CrypticNumber2/MyApp.app 

 ~/Library/Developer/CoreSimulator/Devices/CrypticNumber1/data/Containers/Data/CrypticNumber3/Documents 

CryptNumber 1,2和3都是不同的。 在find包含.app文件的文件夹后,是否有办法find相应的Documents文件夹? 我有这个麻烦。

为什么…?

如果我在iOS 7模拟器上构build应用程序,那么文档目录和.app文件与以前一样至less处于相同的文件夹中,但是iOS 8将它们分开。

我现在唯一能想到的解决scheme是配对2个具有最新创build/修改date的文件夹。

编辑:

在旁边注意,这个工具是非常有用的现在在xcode 6find您的模拟器文件夹: http : //simpholders.com/

这也一直在困扰着我。 我一直无法解决它100%,但我创build了一个快速和肮脏的应用程序来帮助一下。 我总是可以find设备目录,但是我还没有find一种方法来可靠地跟踪bundle / sandbox目录。 来源: https : //github.com/somegeekintn/SimDirs

编辑:提前开始扫描mobile_installation.log以查找其他位置。 似乎现在find一切。

当我使用CoreData存储完整path时遇到同样的问题。 当检索完整path时,它将返回null,因为每次重新启动应用程序时,文档文件夹UUID都不相同。 以下是我的决议:

  1. 确保只在CoreData中存储文档/文件的相对path。 例如,存储“Files / image.jpg”而不是“/Users/yourname/…/Applications/UUID/Document/Files/image.jpg”。
  2. 使用以下来检索应用程序文档位置:

[[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];

  • 连接#2和#1以获取要检索的文档/文件的完整path。
  • 你可以参考苹果开发者注意: https : //developer.apple.com/library/ios/technotes/tn2406/_index.html

    Xcode有一个很棒的插件,可以让你打开你想要的任何应用程序的目录。 这就是所谓的ZLGotoSandboxPlugin ,你可以通过Alcatraz安装它。 这个插件添加了一个特殊的子菜单到Xcode的“文件”菜单(我已经隐藏了几个应用程序名称): 插件菜单。

    我觉得很方便。