Question amusante. Réponse courte :
sudo defaults write "/System/Library/CoreServices/Problem Reporter.app/Contents/Info" LSUIElement -bool false
Cela devrait permettre à Problem Reporter de s'afficher dans le Dock lors de sa prochaine exécution.
Comment je suis arrivé à la réponse : Quand un accident se produit, /System/Library/CoreServices/ReportCrash
est géré par launchd
selon l'un des com.apple.ReportCrash*.plist
fichiers dans /System/Library/Launch{Daemons,Agents}/
. C'est lui qui génère le rapport d'accident que vous trouverez dans le site Web de la Commission européenne. [~]/Library/Logs/CrashReporter/
o [~]/Library/Logs/DiagnosticReports
.
Il semble que ReportCrash soit en mesure de lancer l'affichage d'une boîte de dialogue similaire à la boîte de dialogue "Rapport de problème pour APP" - elle contient la chaîne "/System/Library/PrivateFrameworks/CrashReporterSupport.framework", qui contient les ressources utilisées pour localiser le texte affiché dans la fenêtre de dialogue. Il contient également des appels à la fonction CFUserNotification
API. Mais le processus ReportCrash se termine après un certain temps, alors que la boîte de dialogue continue de s'afficher. (Le CFUserNotification
est très probablement une solution de repli au cas où _CROpenProblemReport
qui a le CrashReporterSupport
cadre privé ouvrir l'application que vous voyez, échoue.)
Devinez ce qui continue à courir ? /System/Library/CoreServices/Problem\ Reporter.app
. Si vous open
ce fichier, la boîte de dialogue de rapport de problème apparaît au premier plan. La raison pour laquelle vous ne pouvez pas la voir dans le Dock ou dans la liste Cmd-Tab est que son fichier Info.plist contient l'entrée suivante LSUIElement = 1
.
Je parie que vous pouvez faire en sorte que vous puissiez le voir dans le Dock et y accéder par Cmd-Tab en changeant la valeur de l'attribut LSUIElement
a <false/>
sur /System/Library/CoreServices/Problem\ Reporter.app/Contents/Info.plist
.