Мне было просто любопытно, как приложения Mac автоматически связывают с ними типы файлов. В частности, если приложение устанавливается методом перетаскивания, как оно автоматически связывает с ним определенные типы файлов? Например, если у меня есть файл AVI, связанный с QuickTime, я загружаю VLC, перетаскиваю его в папку с приложениями и, наконец, открываю файл, он будет открыт с помощью VLC. Я понимаю, как это произойдет с пакетом установщика, но просто не совсем понимаю, как перетаскивание файла может создать эту связь.
2 ответа
Он основан на унифицированных идентификаторах типов. Компонент Mac OS X, называемый LaunchServices, поддерживает сопоставление UTI с приложениями (и каждое приложение объявляет UTI, которые оно может поддерживать). Обратите внимание, что UTI являются иерархическими, поэтому, если одно приложение заявляет о поддержке ZIP-файлов, а другое - о поддержке архивов, они оба могут открывать ZIP-файлы.
В двух словах, приложения объявляют, какие типы они могут открывать, в файле Info.plist, хранящемся в пакете .app. Средство поиска читает эту информацию, когда приложение открывается или копируется, и сообщает об этом в базу данных Launch Services OS X.