Чрезмерные диалоги «Открытие приложения в первый раз»

32

Я часто получаю диалоговое окно, предупреждающее меня, что я открываю приложение впервые. Но это не первый раз. Некоторые из них являются приложениями, которые я использую ежедневно. введите описание изображения здесь

Кажется, я получаю больше после обновления ОС, почти как если бы какая-то база данных была сброшена. Могу ли я что-то сделать, чтобы эти предупреждения были сгенерированы правильно?

Билл Нэйс
источник

Ответы:

38

Это предупреждение появляется каждый раз, когда приложение хочет зарегистрировать обработчик URI ( something://протокол). Обычно ваше одобрение сохраняется LaunchServices, но эта база данных может быть повреждена. Попробуйте сбросить его, выполнив

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

в Терминале. После этого предупреждения должны появиться один раз для каждого приложения, а затем исчезнуть навсегда. Если они продолжают поступать, что-то сбрасывает базу данных самостоятельно (подсказкой может быть то, что установленное по умолчанию приложение браузера / почтового приложения / приложения RSS / FTP, которое вы устанавливаете, продолжает сбрасываться на предоставленные Apple).

Копишке
источник
Потрясающий ответ. Нашли ли вы такие элементы, как панели системных настроек, чаще получающие это сообщение в 10.7.2?
bmike
@bmike: совсем нет - вот почему я думаю, что база данных LaunchServices OP (была) повреждена или сброшена.
копищке
Спасибо. Я вижу, что некоторые конкретные приложения, такие как ScreenSync, никогда не очищают бит карантина в 10.7.2. Даже если я пересоберу базу данных служб запуска с помощью вашей команды, она все равно будет запрашивать меня каждый раз, когда я вхожу в систему (и она запускается сама). Мне пришлось прибегнуть к использованию xattr для ручного удаления битов карантина ....
bmike
@bmike: бит карантина запускает другое диалоговое окно с предупреждением: «Это приложение было загружено из Интернета (yadda, yadda)». Это не имеет никакого отношения к LaunchServices.
копищке
Теперь я в замешательстве. Я получаю то же диалоговое окно на панели pref, для которого нужно вручную очистить бит карантина. cl.ly/BZKm Разница заключается в формулировке в нижней части диалогового окна - в одной упоминается веб-страница, а в другой - местоположение приложения?
bmike
3

У меня была такая же проблема (только с SourceTree, после обновления), и ответ @ kopischke напомнил мне о другой ветке Ask Different, связанной с другой проблемой базы данных LaunchServices:

Почему список приложений «Открыть с помощью» на моем Mac начинает перечислять приложения дважды, а иногда и три раза?

Команда сброса LaunchServices при условии, что она немного отличается от команды @kopischke:

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

Я попробовал это, и это решило мою проблему «Открытие приложения в первый раз». Но это не требовало от меня повторного одобрения всех остальных приложений (только несколько; я не видел очевидной схемы, в которой). Так что, возможно, стоит попробовать это, прежде чем пытаться сделать более раннее предложение

Том Лоредо
источник