如何在ios设备上打开ios应用程序调试期间创建的txt文件[重复]

Posted

技术标签:

【中文标题】如何在ios设备上打开ios应用程序调试期间创建的txt文件[重复]【英文标题】:How to open txt files created during ios application debug on ios devices [duplicate] 【发布时间】:2013-10-31 11:43:50 【问题描述】:

我正在使用 Xcode 4.6 开发 iPad 应用程序。为了收集应用程序的一些关键信息,在调试过程中(对于真实的ios设备)我将一些数据放在一个文本文件中,可以用以下代码演示一个示例:

   std::ofstream f;
    f.open("test.txt",std::ios::out ) ;
    for (int i=0;i<100;i++)
    
        f << i << std::endl;
    
    f.close() ;

运行应用程序后,我想检查test.txt 中的数据,但是我不知道如何找到它。 This post 似乎很有帮助,但我无法按照他的指示找到 Application Data

【问题讨论】:

为什么不开发一个适当的日志类并在应用程序的整个生命周期中使用它? @***foe 感谢您的 cmets,在我的情况下它有点复杂。我收集的数据会被当作另一个软件包的输入,然后我会分析数据。 你是在真正的 iOS 设备还是模拟器上做这个?您如何访问文件取决于答案。 @rmaddy 我在真正的 iOS 设备上工作。 您的链接帖子中的说明中有哪些部分您不明白?保存文件后,挖掘保存的文件以获取所需的沙盒文件。 【参考方案1】:

Application Documents 文件夹可通过 iTunes 访问。但为此,您必须为应用程序启用文件共享。这是启用文件共享的链接https://developer.apple.com/library/ios/documentation/Miscellaneous/Conceptual/iPhoneOSTechOverview/CoreServicesLayer/CoreServicesLayer.html#//apple_ref/doc/uid/TP40007898-CH10-SW30

但最好使用 NSLogs 或任何其他自定义 Logger。

【讨论】:

【参考方案2】:

您需要设置输出文件的完整路径,因为默认情况下,当前工作目录将是您无法写入的应用程序包目录(您没有指定完整路径在您的文件打开语句中,因此它将使用 cwd)。

因此,如果您希望它出现在应用程序的文档目录中,您需要使用 Objective-C(或 Objective-C++)获取它,并将该路径传递给您发布的 C++ 方法。

我建议使用 Objective-C++ 来允许您混合编程语言(将文件扩展名更改为 .mm):

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
std::string docDir = [paths[0] UTF8String];
std::ofstream f;
f.open(docDir + "/test.txt", std::ios::out);
for (int i=0;i<100;i++)

    f << i << std::endl;

f.close();

【讨论】:

以上是关于如何在ios设备上打开ios应用程序调试期间创建的txt文件[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在具有较高 iOS 的设备上调试具有较低 SDK 的 iOS 应用程序构建

有没有办法在同一台 Mac 上调试两个 iOS 设备?

如何在 iOS 设备上的滑动手势期间“捕捉”子视图?

如何在 ios 设备上未启动本机应用程序时进行调试

如何添加真机调试的iOS设备

如何调试未在任何 IOS 设备上加载的网站?