iOS模拟器运行之间的共享目录

时间:2016-12-14 23:46:25

标签: ios xcode

我试图保存在运行单元测试时生成的文件,这些单元测试稍后通过相同的测试在不同的模拟器上/在不同的时间加载。我无法使用NSDocumentsDirectory,因为每次我在同一个模拟器上运行应用程序时它都会更改。我可以写什么共享目录,或者我可以写什么路径到不同测试运行之间加载文件的位置?

注意:

  • 记录的数据在测试运行时被记录。我正在录制http流量并将其写入稍后要加载的文件。

  • 我在同一个模拟器上运行所有测试,因此如果目录在模拟器之间无法访问,那就没问题了。我希望在不同的运行中可以通过相同的模拟器访问它。

2 个答案:

答案 0 :(得分:2)

当iOS应用程序写入iPhone模拟器(NSDocumentDirectory)上的文档目录时,数据仍可供后续运行使用。即使应用程序被重建/重新安装,数据仍将保留在应用程序中,但保留在新的NSDocumentDirectory中。即使根应用程序目录不同,文档也会自动移动到新的NSDocumentDirectory

所以它只是工作,只要它在同一个模拟器上,就像它在同一个设备上一样。你不需要做任何事情。

我发现使用Mac OS X Finder或终端(对我而言)的诀窍是始终停止查看同一个绝对目录,并将应用程序运行到记录当前文档目录的任何内容,然后检查该新目录中是否存在文档。我发现每次重建/重新安装应用程序时,系统总会为我移动文档。

就我所知,它似乎与从App Store更新真实设备上的应用程序时的行为大致相同。我想它会安装新应用,然后将旧应用中的所有数据移动到新应用,然后删除旧应用。

答案 1 :(得分:1)

模拟器就像是单独的设备:它们不能共享文件,也不能新安装(来自重建)你的应用程序 1 我想你会必须生成文件,然后手动找到它们{。{3}}。

然后,您可以在“复制捆绑资源”构建阶段将文件添加到测试目标,然后通过NSBundle访问它们。即使在测试时,主包仍然是应用程序,但您可以找到包含+bundleForClass:的正确包和仅存在于测试目标中的类。

1 in the simulated app container指出这是错误的。