В моем iOS-приложении я открываю UIDocumentPickerViewController
для импорта файлов .sty (стили MIDI). Для этого я объявил пользовательский UTI в импортированных UTI и в типах документов.
Проблема в том, что на iPad Air 2 моего клиента эти файлы отображаются серым цветом в диалоговом окне, поэтому он не может импортировать их. На моем iPad Air 2 они не серые, и я могу их успешно импортировать. Мы оба можем видеть это при использовании iCloud Drive и Dropbox в качестве провайдеров файлов.
Что может отличаться на наших устройствах? Мой клиент устанавливает приложение в качестве внутреннего тестера с помощью TestFlight.
Кроме того, учитываются ли расширения файлов в регистре импорта UTI с учетом регистра? Я бы так не думал.
Тогда мне интересно, должен ли я добавить значок типа документа или нет. По ссылке значок не обязателен.
Документы iCloud включены:
Вот код, который представляет UIDocumentPickerViewController
:
let utis = [String](PlaylistItem.utiToType.keys)
let viewController = UIDocumentPickerViewController(documentTypes: utis, in: .import)
viewController.delegate = self
viewController.modalPresentationStyle = .formSheet
if #available(iOS 11, *) {
viewController.allowsMultipleSelection = true
}
self.present(viewController, animated: AppDelegate.isAnimationsEnabled, completion: nil)
с этим определением ИМП в классе PlaylistItem
:
enum FileType: Int {
case other
case mid
case mp3
case m4a
case aiff // AIFF audio recording
case wave
case turboMidi // purchased MIDI file
case style
}
static let kUTTypeStyleYamaha = "com.turboreini.style" // matches document types in Info.plist
static let utiToType: [String: FileType] = [
kUTTypeMPEG4Audio as String: .m4a,
kUTTypeMP3 as String: .mp3,
kUTTypeMIDIAudio as String: .mid,
PlaylistItem.kUTTypeStyleYamaha: .style
]
Это тип документа, полученный из Xcode 9:
… и раздел «Импортированные ИМП»:
Обратите внимание, что я выбрал произвольный идентификатор для файлов стилей, потому что я не смог найти официальный идентификатор в Интернете.
Эта проблема сводит меня с ума. Я не могу найти ничего плохого.
Интересно, зависит ли это от других установленных приложений?
Помимо импорта файлов .sty, приложение также создает собственные пользовательские файлы с собственным расширением. Для этого я определил экспортированный UTI. Работает нормально, файлы не отображаются серым цветом. Но решение для импорта файлов .sty не должно заключаться в перемещении записи из Импортированных в Экспортируемые UTI. Мое приложение является только «просмотрщиком» для файлов .sty.
Любые идеи по этому делу будут высоко оценены.