Веселый вопрос. Короткий ответ:
sudo defaults write "/System/Library/CoreServices/Problem Reporter.app/Contents/Info" LSUIElement -bool false
Это должно привести к тому, что Problem Reporter появится в Dock при следующем запуске.
Как я пришел к ответу: Когда происходит сбой, /System/Library/CoreServices/ReportCrash запускается launchd соответствии с одним из com.apple.ReportCrash*.plist файлы в /System/Library/Launch{Daemons,Agents}/ . Это ответственно за генерацию отчета о сбое, который вы найдете в [~]/Library/Logs/CrashReporter/ или [~]/Library/Logs/DiagnosticReports .
Похоже, что ReportCrash может инициировать отображение диалогового окна, похожего на диалоговое окно "Отчет о проблемах для приложения" - оно содержит строку «/System/Library/PrivateFrameworks/CrashReporterSupport.framework», которая содержит ресурсы, используемые для локализации текст отображается в диалоговом окне. Он также содержит вызовы API-интерфейса CFUserNotification . Но процесс ReportCrash завершается через некоторое время, в то время как диалоговое окно продолжает отображаться. (Подход CFUserNotification скорее всего, является запасным вариантом в случае, если _CROpenProblemReport , в котором частная среда CrashReporterSupport открывает приложение, которое вы видите, не работает.)
Угадай, что продолжает работать? /System/Library/CoreServices/Problem\ Reporter.app . Если вы open этот файл, появится диалоговое окно с отчетом о проблеме. Причина, по которой вы не видите этого в Dock или в списке Cmd-Tab, заключается в том, что в его файле Info.plist есть запись LSUIElement = 1 .
Могу поспорить, что вы можете сделать это так, чтобы вы могли видеть его в Dock и Cmd-Tab, изменив значение LSUIElement на <false/> в /System/Library/CoreServices/Problem\ Reporter.app/Contents/Info.plist