Как включить обмен файлами для моего приложения?

158

У меня есть приложение для редактирования изображений, где пользователи могут применять эффекты к фотографиям. Как включить его, чтобы пользователи могли видеть мое приложение в iTunes на вкладке «Общий доступ к файлам», а затем просто перетаскивать фотографии в приложение?

Некоторые из читателей электронных книг, такие как Stanza, работают так, и это было бы неплохо. Может быть, кто-то может указать учебник или ресурс, который рассказывает о том, как включить и использовать эту технику.

Гордый член
источник

Ответы:

282

Вам просто нужно установить UIFileSharingEnabled( Application Supports iTunes file sharing) в информационном списке вашего приложения. Вот ссылка на документацию. Прокрутите вниз до раздела поддержки обмена файлами.

В прошлом также было необходимо определить CFBundleDisplayName( Bundle Display Name), если его там еще не было. Подробнее здесь .

Vin
источник
57
Для таких из вас, как я, это: Приложение поддерживает общий доступ к файлам iTunes при редактировании файла info.plist в Xcode.
LavaSlider
Есть ли какая-то причина, почему это не могло иметь эффекта в одном приложении? Я включил его, но приложение не будет отображаться при совместном использовании файлов iTunes
rraallvv
@rraallvv вы пытаетесь с разработкой сборки или специальной сборки?
Vin
@rraallvv вы, вероятно, должны настроить свои типы файлов ... (типы документов в target / info)
nielsbot
И в случае, если кто-то еще вырывает волосы из-за того, что они не работают, проверьте, возможно, у вас есть более одного * Info.plist.
Тони Адамс
42

Согласно Apple Doc :

Поддержка
общего доступа к файлам Поддержка общего доступа к файлам позволяет приложениям сделать файлы пользовательских данных доступными в iTunes 9.1 и более поздних версиях. Приложение, которое заявляет о своей поддержке общего доступа к файлам, делает содержимое своего каталога / Documents доступным для пользователя. Затем пользователь может перемещать файлы в этот каталог и из него по мере необходимости из iTunes. Эта функция не позволяет вашему приложению обмениваться файлами с другими приложениями на том же устройстве; для такого поведения требуется объект монтажной панели или контроллер взаимодействия с документом.

Чтобы включить общий доступ к файлам для вашего приложения, сделайте следующее:

  1. Добавьте ключ UIFileSharingEnabled в файл Info.plist вашего приложения и установите значение ключа в YES . (Фактическое имя ключа: «Приложение поддерживает общий доступ к файлам iTunes»)

  2. Поместите все файлы, которые вы хотите поделиться в каталоге документов вашего приложения.

  3. Когда устройство подключено к компьютеру пользователя, iTunes отображает раздел «Общий доступ к файлам» на вкладке «Приложения» выбранного устройства.

  4. Пользователь может добавлять файлы в этот каталог или перемещать файлы на рабочий стол.

Приложения, поддерживающие общий доступ к файлам, должны иметь возможность распознавать, когда файлы были добавлены в каталог «Документы», и отвечать соответствующим образом. Например, ваше приложение может сделать содержимое любых новых файлов доступным через его интерфейс. Вы никогда не должны предоставлять пользователю список файлов в этом каталоге и просить их решить, что делать с этими файлами.

Дополнительные сведения о ключе UIFileSharingEnabled см. В разделе « Ссылка на ключ списка свойств информации» .

Нико
источник
1
Почему приложение не должно предоставлять пользователю список файлов?
Cutetare
1
@Cuterare: Предположим, вы хотите, чтобы в каталоге документов были только файлы mp3, но пользователь помещает файлы .pdf, а затем вы либо оставляете его, либо пользователь, либо обрабатываете его с вашей стороны. Поэтому позаботьтесь о том, что вы делаете с файлами. Это ссылка из документа Apple, пожалуйста, посетите URL.
Нико
Как я могу экспортировать данные журнала с Windows PC?
Vineesh TP
13

Новый XCode 7 будет требовать только ключ 'UIFileSharingEnabled' в Info.plist. CFBundleDisplayName больше не требуется.

Еще один совет: не только изменяйте Info.plist цели 'tests'. Основное приложение и «тесты» имеют разные Info.plist.

wanyancan
источник
Здравствуй. Я добавил «Приложение поддерживает общий доступ к файлам iTunes» - «ДА» в моем info.plist. Но строка удаляется автоматически, когда я запускаю кнопку «Выполнить» на Xcode. У вас нет такой же проблемы?
Маса
6

Если вы найдете по алфавиту в plist, это должно быть "Приложение поддерживает общий доступ к файлам iTunes".

Тим
источник
2

Возможно, это очевидно для вас, ребята, но я почесал голову некоторое время, потому что папка не появилась в приложении файлов. Мне действительно нужно было что-то хранить в папке. Вы могли бы достичь этого путем

  • сохраняя некоторые файлы в папку с документами приложения
  • перенесите что-нибудь из iCloud Drive в ваше приложение (в диалоге перемещения появится папка). Как только в вашей папке больше не будет файлов, она исчезнет из "на вкладке моего iPad".
iVentis
источник
Спасибо за добавление этого. Единственное, что меня смущало, так это то, что в первый раз, когда вы включаете общий доступ к файлам и сохраняете файл, вы должны извлечь его и повторно подключить устройство, чтобы что-то появилось. На всякий случай, если кто-то еще тратит время на то, чтобы возиться с этим.
Cosworth66
1

В Xcode 8.3.3 добавьте новую строку в .plist с истинным значением

Приложение поддерживает общий доступ к файлам iTunes

Оскар Кастельон
источник