Я пишу приложение, которое сохраняет и загружает документы как локально, так и в iCloud. Локально работает нормально, но у меня проблема с iCloud.
Документы сохраняются как пакет - UIDocument читает и записывает NSFileWrapper, который содержит файл изображения, файл миниатюр и информационный лист. Когда я сохраняю документ в iCloud, а затем просматриваю файлы в разделе «Управление хранилищем», я вижу отдельные файлы вместо пакетов; и, что более важно, когда я ищу файлы с помощью NSMetadataQuery, он возвращает NSMetadataItem для каждого из отдельных файлов вместо пакетов. В результате мое приложение не понимает, есть ли какие-либо пакеты для загрузки, и iCloud бесполезен.
Я подумал, что если я настрою тип документа и правильно экспортировал UTI, пакеты будут обрабатываться должным образом. Это правда? Если да, то каков контрольный список для настройки типа документа как пакета? У меня есть:
- Добавлен тип документа
- установите LSTypeIsPackage в YES (я пробовал строки YES и bool YES)
- установите CFBundleTypeExtensions в массив, содержащий одну строку: суффикс файла
- установите LSHandlerRank на Owner
- Экспортировал UTI с тем же идентификатором
- установите его в соответствии с com.apple.package
- добавлен словарь UITypeTagSpecification, содержащий массив для ключа public.filename-extension, который содержит одну строку: суффикс файла
Я также попытался добавить соответствующий импортированный UTI, соответствующий экспортированному, но безуспешно.
Что я пропустил?
ОБНОВЛЕНИЕ: я замечаю, что OP в этом вопросе видит поведение, которое я хочу (даже если он этого не хочет), так что это должно быть возможно.