Как исправить ошибочные ассоциации lsregister после перезагрузки? [дубликат]

Я использую 10.7.5 и заметил проблему с ассоциациями между файлами и приложениями. Основной симптом заключается в том, что Finder показывает более одной копии одного и того же приложения для открытия файла.

Сначала все работало, но теперь com.apple.LaunchServices.plistфайл больше не обновляется. В частности, если я запускаю через терминал, lsregister -dumpассоциация появляется, но если я открываю файл plist, ассоциация отсутствует. Если я перезагружаюсь, вместо обновления файла plist система удаляет ассоциацию из базы данных (опция -dumpбольше не показывает ее). Несколько раз пытался запустить lsregister -kill -seed, но ситуация не меняется.

Как я могу навсегда исправить ассоциации между файлами и приложениями?

Ответы (1)

База данных LaunchServices состоит из данных из четырех доменов. (Дополнительную информацию об этих доменах см. в 'lsregister --help'.) Возможно, вы неправильно перестраиваете базу данных LaunchServices. Это команда, которую я использую для восстановления базы данных на моем Mac:

sudo /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user

Если вы действительно хотите разобраться в тонкостях ассоциаций файлов (плюс многое другое) и хотите, чтобы для загрузки был приятный графический интерфейс, попробуйте установить RCDefaultApp.

http://www.macupdate.com/app/mac/14618/rcdefaultapp

Я попытался запустить sudo opensnoop -n lsregister, и было гораздо меньше очередей, когда -domain local -domain system -domain userего не учитывали. Я не знаю, нужны ли параметры -rили .-seed
Мне пришлось использовать команду без sudoочистки списка.