Pergunta divertida. Resposta curta:
sudo defaults write "/System/Library/CoreServices/Problem Reporter.app/Contents/Info" LSUIElement -bool false
Isso deve fazer com que o Problem Reporter apareça no Dock na próxima vez que for executado.
Como cheguei à resposta: quando ocorre uma falha, /System/Library/CoreServices/ReportCrash
é executado por launchd
de acordo com um dos com.apple.ReportCrash*.plist
arquivos em /System/Library/Launch{Daemons,Agents}/
. Isso é responsável por gerar o relatório de falhas que você encontrará em [~]/Library/Logs/CrashReporter/
ou [~]/Library/Logs/DiagnosticReports
.
Parece que o ReportCrash pode iniciar a exibição de uma caixa de diálogo similar à caixa de diálogo "Relatório de problema para o aplicativo" - contém a sequência "/System/Library/PrivateFrameworks/CrashReporterSupport.framework", que contém os recursos usados para localizar o texto exibido na janela de diálogo. Ele também contém chamadas para a API CFUserNotification
. Mas o processo ReportCrash sai depois de um tempo, enquanto a caixa de diálogo continua a ser exibida. (A abordagem CFUserNotification
provavelmente é um substituto no caso de _CROpenProblemReport
, que tem a estrutura CrashReporterSupport
private abrir o aplicativo que você está vendo, falhar.)
Adivinha o que continua correndo? %código%. Se você /System/Library/CoreServices/Problem\ Reporter.app
este arquivo, a caixa de diálogo do relatório de problemas vem à tona. O motivo pelo qual você não pode ver isso na lista Dock ou Tabulação do Cmd é porque o arquivo Info.plist contém a entrada open
.
Eu aposto que você pode fazer isso para que você possa vê-lo no Dock e no Cmd-Tab, alterando o valor de LSUIElement = 1
para LSUIElement
in <false/>
.