iOS 文件检索 - NSDocumentDirectory

Posted

技术标签:

【中文标题】iOS 文件检索 - NSDocumentDirectory【英文标题】:iOS File Retrieval - NSDocumentDirectory 【发布时间】:2016-03-11 11:06:30 【问题描述】:

我正在开发一个带有非常详细的记录器模块的库,在 ios 上,该库在一致的文件树中将 xml 日志写入NSDocumentDirectory。我想为这个库的用户提供一种方法来轻松访问这些日志。

我知道以编程方式从这个目录中检索文件很简单,但是是否可以从 Xcode 外部以任何方式访问 iOS 物理设备上的这个目录来检索这些日志?我觉得我以前在某个地方看到过,以提取.ipa 文件并进入包内容的方式,但我可能错了。

----------------------------------- - - - - - 编辑 - - - - - - - - - - - - - - - - - - - - --------------------------

这 (Browse the files created on a device by the IOS application I'm developing, on workstation?) 是如何在设备上使用 Xcode 执行此操作,但我必须假设我们可以创建某种方法来为用户从设备中注销。

【问题讨论】:

UIFileSharingEnabled 不适合你吗?非技术用户可以使用 iTunes 或第三方应用程序(如 iExplorer)从文档目录中提取日志文件。 没想到。我的初步研究似乎向我展示了这将是可行的,所以您可以在我尝试的同时发布作为答案,如果可以的话,我可以给您信用吗? 【参考方案1】:

是否可以从 Xcode 外部以任何方式访问 iOS 物理设备上的此目录以检索这些日志?

可以通过启用 iTunes 文件共享来公开Documents 目录。当通过此方法启用文件共享时,Documents 目录的内容将在 iTunes 中对用户可见,也可以导出。这些文档也可以通过 iExplorer 等第三方桌面应用程序导出。

Here 是指向 Apple 文档的链接。您也可以参考this 线程来了解这是如何完成的。

【讨论】:

仅供参考 - 我们使用 Cmake 从跨平台代码生成我们的库,因此这意味着我们可能必须从头开始在 plist 中激活这两个键来创建一个示例项目。我们会编写脚本,但非常感谢!!!【参考方案2】:

如果您使用的是模拟器(显然您的任务似乎不需要真正的设备),那么您很幸运。

你应该去一个类似的文件夹:

/Users/[YOUR_USER_NAME]/Library/Developer/CoreSimulator/Devices/[RANDOM_HASH_YOU_SHOULD_DISCOVER]/data/Containers/Data/Application/[RANDOM_HASH_2_YOU_SHOULD_ALSO_DISCOVER]

在那里,使用 finder,您将获得模拟器的“文档”文件夹以及您尝试从中检索日志的应用程序。

你可能会说:我不知道我应该去哪 2 个 RANDOM_HASHES。 你是对的。如果您安装和/或使用了许多模拟器,则可能很难找出您要调试的模拟器。 你的APP也是一样,你的应用会在另一个RANDOM_HASH文件夹中,你应该一个一个浏览它们,然后发现你的documents文件夹。

有人需要解决这个“烂摊子”并创建了一个 Xcode Alcatraz 扩展程序,该扩展程序可以引导您在任何给定时刻精确到您正在调试的实时模拟器和 APP,然后您无需猜测您使用哪 2 个 random_hash 路径需要导航到。

如果 Xcode + Alcartaz 插件扩展管理器有点超出您的能力范围,您可能需要 google 一下。这不是一个困难的过程。

PS:这个神奇的 Alcatraz 扩展名为“XCodeWay”(如果你有足够的勇气将 Alcatraz 安装到你的 XCode 副本上)。

编辑:获取 Alcatraz 的有用链接:http://alcatraz.io/ 按照其简单说明操作即可完成。

EDIT2:如果不能使用 Xcode,那么这个其他线程中的最后一个问题可能会派上用场:Browse the files created on a device by the IOS application I'm developing, on workstation? (不过,您的用户机器中仍需要一个外部应用程序)

【讨论】:

我会更新问题,你的答案对于模拟器是正确的,但我需要它用于 iOS 设备。 好吧...在 Xcode 中转到 Window ->Devices。到达那里后,选择您的真实设备,我可以在某处记住某种“右键单击”选项,让您浏览(糟糕)您的设备沙箱的内容。但我不记得你是否可以下载这些文件 Xcode 是不可能的。我需要非开发人员用户能够访问这些日志。 没有想法然后:)

以上是关于iOS 文件检索 - NSDocumentDirectory的主要内容,如果未能解决你的问题,请参考以下文章

从 App Store 检索我的 iOS 应用程序的文件 [重复]

为快速开发的 ios 应用程序检索存储为 PFFile 的视频文件

通过 Swift 在 iPhone (iOS) 开发中存储/检索用户数据(读/写文件)的正确方法是啥?

如何在 iOS swift 中检索缓存的文件?

从 iOS 应用内购买收据中检索订单 ID/文件编号

检索 iOS 模拟器 DerivedData 应用程序容器 ID