Macのアプリケーションがクラッシュした際のクラッシュレポート(問題レポート)を完全に無効(非表示)にする方法を紹介。
なお、クラッシュレポートを無効化する方法として下記のターミナルコマンドが紹介される場合があるが、近年のmacOSでは下記のコマンドは無効のため注意。
defaults write com.apple.CrashReporter DialogType none
クラッシュレポート無効化手順
1. ターミナルコマンド実行
下記コマンドをターミナルに貼り付けて実行する。
launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist
パスワードの入力を求められたら管理者パスワードを入力してエンターキー。
このコマンドの効果は直ちに現れ、通常Macを再起動する必要はない。
2. 意図的にクラッシュレポートを表示させてテストする
前述のコマンドを実行したら、続いては実際にクラッシュレポートが無効になったのか確認するため、任意のアプリで意図的にクラッシュレポートを表示させるコマンドを実行する。
通常のアプリ終了や強制終了とは違い、意図的にクラッシュレポートを表示させるため、App Storeや電卓など、何か問題が起きても比較的影響が少ないアプリを選ぶのがいいだろう。
sudo kill -3 クラッシュレポートを表示させたいアプリのプロセスID
アプリのプロセスID(pid)はアクティビティモニタで確認できる。
画像では意図的にApp Storeのクラッシュレポートを表示させたいので、プロセスIDは「40130」となる。
ちなみにプロセスIDは同じアプリでもアプリを実行する度に変わり、個人の環境によって全く違うため注意。
前述のコマンドを実行してもクラッシュレポートが表示されなければ無効化成功だ。
なお、もし効果が現れない場合は手順1のコマンドの効果が現れていない可能性があるため、一度Macを再起動して再度確かめてみよう。
3. 元に戻す場合
再びクラッシュレポートを有効化したい場合は下記コマンドを実行する。
launchctl load -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist
このコマンドも直ちに効果が現れるため、通常再起動する必要はない。
まとめ
クラッシュレポートは文字通りアプリのクラッシュした原因を特定する上で重要な手掛かりとなるが、アプリによっては正常にアプリを終了させてもクラッシュレポートが表示されることがあるため、そういった場合には本記事のコマンドが役に立つだろう。