Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调试时是否可以在iOS应用程序沙箱中查看文件的内容?_Ios_Xcode_Debugging_Logging_Xcode4 - Fatal编程技术网

调试时是否可以在iOS应用程序沙箱中查看文件的内容?

调试时是否可以在iOS应用程序沙箱中查看文件的内容?,ios,xcode,debugging,logging,xcode4,Ios,Xcode,Debugging,Logging,Xcode4,在Xcode中调试时,我想在特定的执行点检查XML文件的内容。是否可以通过正在使用实际硬件设备(而不是模拟器)调试的管理器查看文件内容,或者通过在输出/控制台中键入某种命令来查看文件内容 我使用的是Xcode 4。您可以启用文件共享,在info.plist中设置UIFileShareingEnabled标志,并将文件存储在可通过iTunes访问的位置,即文档文件夹中。您可以始终设置断点,然后在控制台中,使用“po”打印要检查的对象的内容。示例:gdb>po[NSDictionary Dictio

在Xcode中调试时,我想在特定的执行点检查XML文件的内容。是否可以通过正在使用实际硬件设备(而不是模拟器)调试的管理器查看文件内容,或者通过在输出/控制台中键入某种命令来查看文件内容


我使用的是Xcode 4。

您可以启用文件共享,在info.plist中设置UIFileShareingEnabled标志,并将文件存储在可通过iTunes访问的位置,即文档文件夹中。

您可以始终设置断点,然后在控制台中,使用“po”打印要检查的对象的内容。示例:gdb>po[NSDictionary Dictionary WithContentsOfFile:filePath]

我刚刚发现,实际上您可以随时将沙盒的全部内容保存到磁盘。只需打开组织者并单击底部的“下载”按钮。这会将沙盒保存为.xcappdata文件。我不知道如何打开它,但我发现如果您将文件扩展名更改为.xml,您可以像普通目录一样使用finder浏览它


遗憾的是,如果需要,您不能下载单个文件,而且整个过程有点麻烦,但它确实让我最终实现了我的目标。

只需打开组织者并单击底部的“下载”按钮,然后右键单击xcappdata文件并选择显示软件包内容。

更新了Xcode 6的答案:

“设备”选项卡现在有自己的窗口->设备。找到你的设备,然后找到你的应用程序。除非日志窗口可见,否则没有“下载”按钮。。。然后那里的下载图标实际上保存了日志

如果你双击你的应用程序,一个新窗口将显示该应用程序沙盒的只读、非交互式表示


要下载应用程序容器,请选择一个应用程序,单击Gear和下载容器。这将需要一段时间,在这段时间内没有进展的迹象;但是会出现一个Finder窗口,显示.xcappdata文件。您也可以更换看起来既酷又刺激的容器。

虽然这很有用,但恐怕这不是我想要的。我意识到,在大多数情况下,我可以在写入磁盘之前或读取之后简单地使用它查看对象的内容,但我想知道是否有一种快速简便的方法可以简单地检查实际文件。如果你在模拟器上,你可以记录文件的路径,从控制台复制它,并使用“打开路径”在终端中打开它。这是一个有用的提示,谢谢!然而,这看起来确实是一种非常迂回的方式来实现一些应该更直接的事情。是的,但这似乎是查看文件的唯一方式——或者按照Lio的建议去做。也许在越狱设备上,您可以以root用户身份ssh进入设备并查看任何文件。下载的.xcappdata不是一个文件-它是整个沙盒目录,至少是数据部分!只需查看内部-终端是一种很好的方法,类似于查看.app内部的组件。无需更改扩展名,但如果完全删除扩展名,可能会帮助Finder解决文件类型上的混淆问题。该目录甚至包含一个AppDataInfo.plist文件,该文件是二进制格式的plist,可显示其中的内容。AppDataInfo.plist文件实际上是应用程序的Info.plist的摘录。要在Finder中查看其内容,右键单击并选择“显示软件包内容”@Will Pragnell我想对我的应用程序用户隐藏沙箱中的一些文件。有可能吗?谢谢。只需稍微澄清一下流程-在设备连接的情况下打开XCode organizer,选择设备选项卡,打开设备下的小下拉按钮,选择应用程序,选择要检查沙盒的应用程序,然后获得下载按钮。非常感谢Ben的澄清,这是一个我会投赞成票的答案。对我来说,这种方法似乎忽略了Documents目录,这正是我所需要的。@BenClayton我想对我的应用程序用户隐藏沙盒中的一些文件。有可能吗?@vigneshkumar你有没有找到在沙盒中隐藏文件的方法?谢谢。这就是我要找的。我尝试替换容器,但没有更改任何内容。我更改了标识符、executableName等,但在替换后,没有任何内容显示为我为不熟悉的人设置的新值。下面是如何打开文件。它是一个容器,因此在Finder中,您必须左键单击该文件并选择“显示包内容”。然后,您可以像其他文件夹一样浏览。