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, но мои пользовательские типы файлов неактивны и не могут быть выбраны.
Примечание:
- Я не создавал расширение поставщика документов, так как не считаю, что это необходимо, и мой формат файла не является распространенным.
- Я вижу следующее предупреждение, когда предпринимаю какие-либо действия с
UIDocumentPickerViewController
, даже если это Отмена, и даже если действие с файлом (например, сохранение .txt) работает. Я потратил довольно много времени, просто пытаясь отследить источник этого предупреждения, но безрезультатно.
плагин com.apple.UIKit.fileprovider.default недействителен