2012-01-11 3 views
5

Итак, мы недавно отправили приложение на основе документов с неудачным недосмотром: UTI для нашего основного типа документа остался пустым. У нас было имя для него, но идентификатор был пустым.Тип файла страдания - Cocoa

Все по-прежнему отлично поработало, но затем мы пошли добавить еще один тип файла в микс. Новый тип файла - просто xml (соответствует public.xml). Мы установили это и упали в документ. Это когда мы поймали наш контроль над UTI первого типа документа.

Теперь, если мы столько, сколько touch этот тип документа, BOOM. Приложение не может читать файлы, созданные им этого типа. Мы действительно хотим очистить это, так что лучший способ сделать это?

Мой вопрос по существу: Как перенести основной тип документа в приложение на основе документа?

ответ

1

Во-первых, очень сложно отладить этот тип проблемы на машине, которую вы используете, чтобы вырезать сборки. Динамическая система UTI запутывается в отношении того, какое приложение владеет файлами. Чтобы решить эту проблему, есть команда, которую вы можете запустить в терминале до clear out the file associations on your system.

Далее мы рассмотрели фактические типы документов нашего приложения. В конечном счете, мы хотим поддерживать только два типа документов: наш настраиваемый тип и тип xml. Однако мы должны были сохранить эту пустую, динамически генерируемую UTI, которая была отправлена. В «Типы документов» у нас есть три: те, которые мы фактически хотим поддержать, и прежнее, которое мы больше не хотим. Для первых двух наше приложение является «редактором». Для старого мы изменили его на «Reader».

Другое, что действительно помогло нашей системе, - это экспортировать импортированные UTI. Мы сказали системе, что наше приложение импортирует XML-тип и экспортирует два других.

Мы провели довольно значительное тестирование, включая развертывание, и эта конфигурация работает как шарм.

Смежные вопросы