Боремся с программой, зависающей от файловой ссылки (Filе:///)

В конце прошлой недели в операционной системе Mountain Lion была обнаружена достаточно странная недоработка. При написании файловой ссылки, начинающейся на «Filе:///» во окне многих программ, приложение могло просто повиснуть и неожиданно завершиться. Вы могли узнать эту информацию в одной из новостей наших хороших друзей, The-Clu. В то время как Apple изучает суть проблемы, пользователи компьютерной техники с ней экспериментируют: кто-то может ввести злополучную фразу самостоятельно, чтобы убедиться в наличии бага, кто-то отправляет крамольную ссылку в сообщениях своим друзьям и коллегам по email и iMessage забавы ради.

Беда в том, что не всегда всё заканчивается после «вылета» приложения. Одноразовая шутка в частых случаях запоминается системой и воспроизводится многократно. Пользоваться программой, в которой была введена файловая ссылка, становится невозможным.

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

Ввод файловой ссылки

Результат

  1. Удаление служебной информации

    При обращении к ранее сохраннённым логам приложение может повторно завершаться. Следует найти и удалить эти файлы. Для этого проще всего воспользоваться программой Консоль, хранящейся в папке Программы → Утилиты. Просто выберите массив записей с ошибками (для этого следует выделить первый элемент списка обычным щелчком мышки и последний элемент списка щелчком по нему мыши с нажатой на клавиатуре клавишой Shift⇧) и удалите клавиатурным сокращением Command⌘ + delete⌫.

  2. Логи с ошибками

    Если удалить записи через Консоль не получается, можно найти их в Finder вручную и перенести в корзину. Для этого в строке меню Finder щёлкните с нажатой на клавиатуре клавишой alt/option⌥ по Переход → Библиотека. В открывшемся окне откройте Logs → DiagnosticReports. Удалите из этой папки диагностические отчёты, имеющее те же названия, что и в Консоли.

    Те же логи, но в Finder
    Те же логи, но в Finder

    Для программы Сообщения следует удалить базу данных сообщений. Она хранится в той же пользовательской Библиотеки, открытой ранее, но не в папке Logs, а в директории Messages. Откройте её и удалите все файлы, содержащие «chat.db» в своих названиях. Также просмотрите папку Archives (тут же, в Messages) и удалите базы сообщений, встречающиеся наиболее часто (они сортированы по датам).

    Все остальные программы сохраняют автоматическую информацию приблизительно также и наши советы должны помочь. Тем не менее, следует руководствоваться советами разработчиков проблемного ПО, специфика работы приложений может отличаться.

  3. Очистка статуса автосохранения приложений

    В OS X Lion Apple добавила функцию автоматического сохранения статуса завершённой программы, то есть после завершения того или иного приложения при его последуещем запуске восстанавливается его состояние: в Safari, например, открываются вкладки, в TextEdit открывается последний документ, с которым вы работали и пр. В Mountain Lion всё осталось по-прежнему и автосохранение статуса программы может играть нам не на руку. Приложение элементарно восстанавливает данные, приводящие к ошибке и проблема повторяется. Чтобы этого не происходило, следует снова открыть папку пользовательских библиотек (в строке меню Finder щёлкните с нажатой на клавиатуре клавишой alt/option⌥ по Переход → Библиотека), найти папку с названием «Saved Application State» и удалить из неё папку, чьё название соотносимо с завершающимся приложением. Эта директория будет иметь служебное название, включающее в себя имя разработчика, например для программы TextEdit следует найти и удалить папку «com.apple.TextEdit.savedState».

  4. Удаление настроек приложения

    Возможно, вы пробовали проверить завершение программы вводя злополучный текст в текстовом поле настроек программы. Соответственно приложение у вас прекрасно функционирует до того момента, пока вы не попробуете их открыть. В этом случае следует или редактировать настройки, стирая злополучную запись (редактировать следует текстовым редактором, на который не воздействует эта недоработка Apple, например TextWrapper), или просто удалить сам файл настроек (он имеет похожее служебное название, как и в случае с автосохранённым статусом). Вам следует открыть папку «Preferences» в пользовательских библиотеках (в строке меню Finder щёлкните снова с нажатой на клавиатуре клавишой alt/option⌥ по Переход → Библиотека) и удалить соответствующий .plist. В случае с TextEdit, например, файл настроек будет иметь название «com.apple.TextEdit.plist». Настройки приложения будут сброшены на заводские, но работоспособность программы будет восстановлена.

Спасибо Тофферу Кесслеру, давшего нам своей публикацией отличный повод для самостоятельного исследования этого вопроса.

Об авторе Дмитрий Кирьянов

Старший инженер технической поддержки одного из известных в Мак-сообществе авторизованного Apple сервис-центра.
Метки: , , . Закладка Постоянная ссылка.