应用程序的文件在模拟器的“文件”应用程序中可见,但在设备上不可见

Posted

技术标签:

【中文标题】应用程序的文件在模拟器的“文件”应用程序中可见,但在设备上不可见【英文标题】:App's files are Visible in 'Files' app on simulator but not on device 【发布时间】:2020-07-17 06:52:56 【问题描述】:

我的应用在 XCode 中具有以下两个 info.plist:

<key>LSSupportsOpeningDocumentsInPlace</key>
<true/>
<key>UIFileSharingEnabled</key>
<true/>

据我所知,执行此操作(并实际在 Documents 目录中创建文件)是让应用程序的文件夹和文件显示在“在我的 iPhone 上”的“文件”应用程序中所需要的全部内容。例如,按照以下说明:https://www.appcoda.com/files-app-integration/

我正在使用以下方法获取“文档”目录:

let docsDir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]

并在那里创建文件:

let baseDestURL = docsDir.appendingPathComponent(dirName)
try FileManager.default.createDirectory(at: baseDestURL, withIntermediateDirectories: true, attributes: nil)
try FileManager.default.moveItem(at: tmpURL!, to: baseDestURL.appendingPathComponent(fileName))

...try 行没有产生错误,这表明它可以工作。

该应用程序确实创建了一个文件夹,其中包含一些文件,在模拟器上,我可以在“我的 iPhone”下的“文件”应用程序中看到该应用程序的文件夹。但是,在实际设备上,“文件”应用在“我的 iPhone”中没有显示我的应用的文件夹。

我知道文件在那里,因为我的应用程序中的代码显示了它从这些文件中读取的信息。

为什么我在设备上的“文件”应用中看不到它们?

【问题讨论】:

感谢不明原因的反对票和接近票。请告诉我您需要什么才能使这个问题更容易被接受,而不是无济于事地只是在没有任何解释的情况下投反对票。如果可能的话,我想把这个问题做得更好,但如果我不知道你为什么认为这是一个不好的问题,我就不能这样做。 【参考方案1】:

重启 iPhone 解决了!

我只能猜测为什么。也许ios已经缓存了具有“文件”访问权限的早期版本的应用程序的功能,也许卸载并重新安装应用程序也可能解决了它(当然只是通过从XCode运行重新安装应用程序并没有解决它.

但只需重新启动 iPhone,然后打开“文件”应用程序就会显示该应用程序的文件夹和其中的所有文件。

【讨论】:

以上是关于应用程序的文件在模拟器的“文件”应用程序中可见,但在设备上不可见的主要内容,如果未能解决你的问题,请参考以下文章

使用核心数据(文件和文件夹)模拟文件系统结构

“在我的 iPhone 上”选项在模拟器中不可见。

如何使我的应用程序对打开 PDF 文件的隐式意图可见?

滚动条在 jquery 移动应用程序中不可见

如何在 Worklight 应用程序上显示 Google 地图

默认字符串在 Facebook 对话框中不可见 [重复]