从命令行运行xcodebuild时,如何写入iPhone SDK中的当前目录?

时间:2010-01-20 23:09:08

标签: iphone objective-c cocoa-touch xcode xcodebuild

有没有人知道在运行xcodebuild(主要是项目目录)并向其写入文件时如何获取当前目录的路径?我试图从我的obj-c代码中将一些单元测试的结果保存到磁盘,但如果可能的话,我宁愿不将它们深深地转储到应用程序的文档路径中。我或许可以将“../../ ..”等附加到文档路径中,但我希望可能有更优雅的方法。

*这只与模拟器有关,当然......但也许模拟器试图维护iPhone文件系统沙箱?我没有运气写在Mac上的其他随机位置,所以我怀疑可能是这种情况。

感谢您的投入!

1 个答案:

答案 0 :(得分:0)

我想出来了 - 答案很简单。强调“尴尬”。

如果您使用类似NSString的writeToFile方法,那么您需要做的就是将您的路径视为相对于运行xcodebuild的位置而言 - 不需要NSSearchPathForDirectoriesInDomains。

示例:

(如果在〜/ src / awesomeapp中运行)

[myString writeToFile:@"awesome.file" atomically:YES encoding:NSUTF8StringEncoding error:&error];

将输出到: 〜/ SRC / awesomeapp / awesome.file

是的,我是个白痴。我实际上尝试过这个第一个,但我试图写入一个不存在的相对目录,从而导致一个无用的“无法做到这一点”的样式错误导致我在互联网周围,最终to stackoverflow ...(你需要使用FileManager#createDirectoryAtPath!不幸的是,没有自动路径创建。)

仅供参考,显而易见,当您通过xcodebuild运行时,您可以随时在硬盘上随意写文件 - 不会出现沙盒。但是,如果你在模拟器中运行,那可能是另一回事。