Средство выбора документов iCloud с настраиваемым UTI

UIDocumentPickerViewController initWithDocumentTypes Требуется ли для работы общедоступный UTI?

Я пытаюсь использовать документы iCloud, чтобы пользователи могли импортировать проприетарный тип файла из iCloud Drive. Тестирование отлично работает для общедоступных UTI, например: @"public.text"

Если я не включу общедоступный UTI в массив initWithDocumentTypes, я получаю экран с указанием:

Документов нет. Документы в iCloud Drive недоступны, поскольку параметр iCloud Documents & Data отключен.

Мой импортированный UTI определен в Target> Info как «com.domain.file». Я должен верить, что это настроено правильно, так как я могу выбрать один из моих проприетарных файлов в другом приложении (например, Dropbox), и мое приложение отображается в параметрах Открыть в ....

В моем действии импорта я пробовал все возможные варианты, чтобы заставить мой пользовательский UTI отображать средство выбора.

- (IBAction)importDocumentPickerTapped:(id)sender
{
    UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc initWithDocumentTypes:@[@"com.domain.file", @"com.domain.app.file", @"iCloud.com.domain.file", @"iCloud.com.domain.app.file" ] inMode:UIDocumentPickerModeImport];
    documentPicker.delegate = self;
    documentPicker.modalPresentationStyle = UIModalPresentationFormSheet;
    [self presentViewController:documentPicker animated:YES completion:nil];
}

Если я добавлю @"public.text" в массив initWithDocumentTypes, то экран выбора местоположений iCloud Drive отобразится должным образом. Я могу выбирать файлы .txt и .rtf, но мои пользовательские типы файлов неактивны и не могут быть выбраны.

Примечание:

  1. Я не создавал расширение поставщика документов, так как не считаю, что это необходимо, и мой формат файла не является распространенным.
  2. Я вижу следующее предупреждение, когда предпринимаю какие-либо действия с UIDocumentPickerViewController, даже если это Отмена, и даже если действие с файлом (например, сохранение .txt) работает. Я потратил довольно много времени, просто пытаясь отследить источник этого предупреждения, но безрезультатно.

плагин com.apple.UIKit.fileprovider.default недействителен


person DenVog    schedule 06.05.2015    source источник
comment
Точно такая же проблема. Вы нашли решение?   -  person stonemonk    schedule 19.01.2017


Ответы (1)


У меня была эта проблема, и я решил ее, настроив экспортированный мной пользовательский UTI в соответствии с UTI public.data.

Вы можете установить это, выбрав цель, а затем вкладку информации. Прокрутите до раздела Экспортированные UTI и разверните его. Под вашим пользовательским UTI есть поле для подтверждения соответствия.

См. Здесь список определенных системой UTI: https://developer.apple.com/library/ios/documentation/Miscellaneous/Reference/UTIRef/Articles/System-DeclaredUniformTypeIdentifiers.html.

person Eric    schedule 15.05.2015
comment
У меня тоже не работает. Какая полная мешанина API, которую Apple создала. Полное попадание и промах без надлежащего предупреждения. В FilePicker все отображается серым цветом. Я пробовал отрегулировать все возможные настройки в пользовательском UTI. - person Hashman; 17.03.2019