如何为我的应用程序启用文件共享?


158

我有一个图像编辑应用程序,用户可以在其中将效果应用于照片。如何启用它,以便用户可以在iTunes的“文件共享”选项卡中看到我的应用程序,然后将照片拖放到该应用程序中?

Stanza等一些电子书阅读器的工作原理是这样的,这将是一个不错的选择。也许有人可以指出有关如何启用和使用此技术的教程或资源。


Answers:


281

您只需要在应用程序的信息列表中设置UIFileSharingEnabledApplication Supports iTunes file sharing)键即可。这是文档的链接。向下滚动到文件共享支持部分。

过去,如果还没有定义CFBundleDisplayNameBundle Display Name),也有必要定义。更多细节在这里


57
对于像我这样面临挑战的人:应用程序在Xcode中编辑info.plist文件时支持iTunes文件共享
LavaSlider 2012年

有任何原因为什么它不能在一个应用程序中起作用?我启用了它,但该应用程序不会显示在iTunes File Sharing上
rraallvv

@rraallvv您尝试使用开发版本还是临时版本?
Vin

@rraallvv,您可能必须设置文件类型...(目标/信息下的文档类型)
nielsbot

如果其他任何人都无法正常工作,请检查一下是否有多个* Info.plist。
托尼·亚当斯

42

根据苹果文件

文件共享支持
文件共享支持使应用程序可以使用户数据文件在iTunes 9.1和更高版本中可用。声明支持文件共享的应用程序使用户/ Documents目录的内容可用。然后,用户可以根据需要从iTunes将文件移入或移出该目录。此功能不允许您的应用与同一设备上的其他应用共享文件;该行为需要粘贴板或文档交互控制器对象。

要为您的应用程序启用文件共享,请执行以下操作:

  1. UIFileSharingEnabled密钥添加到应用程序的Info.plist文件中,并将该密钥的值设置为YES。(实际的密钥名称是“应用程序支持iTunes文件共享”)

  2. 将您要共享的所有文件放在应用程序的“文档”目录中。

  3. 将设备插入用户的计算机后,iTunes会在所选设备的“应用程序”选项卡中显示“文件共享”部分。

  4. 用户可以将文件添加到此目录或将文件移动到桌面。

支持文件共享的应用程序应该能够识别何时将文件添加到“文档”目录中并做出适当的响应。例如,您的应用程序可能会从其界面中提供任何新文件的内容。您永远不应向用户提供此目录中的文件列表,并请他们决定如何处理这些文件。

有关UIFileSharingEnabled密钥的其他信息,请参见《信息属性列表密钥参考》


1
为什么应用程序不应该向用户显示文件列表?
Cutetare 2014年

1
@Cuterare:假设,您只希望在文档目录中放置mp3文件,但用户放置.pdf文件,然后将其保留,直到用户或最终处理。因此,请注意对文件的处理。它是来自Apple文档的引用,请访问url。
Nico 2014年

如何从Windows PC导出日志详细信息?
Vineesh TP

13

新的XCode 7在Info.plist中仅需要'UIFileSharingEnabled'键。不再需要'CFBundleDisplayName'。

另一个提示:不仅要修改“测试”目标的Info.plist。主应用程序和“测试”具有不同的Info.plist。


你好 我在info.plist中添加了“应用程序支持iTunes文件共享”-“是”。但是,当我在Xcode上启动“运行”按钮时,该行会自动删除。你不是有同样的问题吗?
M.Masa '17

6

如果在plist中按字母查找,则应为“应用程序支持iTunes文件共享”。


2

也许对你们来说很明显,但是我挠了一下头,因为该文件夹没有出现在文件应用程序中。我实际上需要在文件夹中存储一些内容。你可以通过实现

  • 将一些文件保存到应用程序的文档目录中
  • 将某些内容从iCloud Drive移动到您的应用程序(在移动对话框中,文件夹将显示)。一旦文件夹中不再有文件,该文件将从“在我的iPad选项卡上”消失。

感谢您添加。我唯一感到困惑的是,第一次打开文件共享并保存文件时,您必须弹出并重新连接设备才能显示任何内容。以防万一其他人浪费时间搞砸了。
Cosworth66

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.