Apple は、リリースされたばかりの Mac OS X 10.6.3 アップデートでのバグ修正とセキュリティ更新に加えて、予期しない終了ダイアログに影響する新しい機能について次のように述べています。「Mac OS X 10.6.3 は、Mac から診断情報と使用状況情報を自動的に収集し、分析のために Apple に送信できます。」
以前のバージョンのMac OS Xでは、クラッシュ後に診断情報を収集できました。Mac OS X 10.6.3では、匿名の「使用情報(例えば、Appleおよびサードパーティのソフトウェア、ハードウェア、サービスの使用状況に関するデータ)」の収集機能が新たに追加されました。残念ながら、この追加によって、Appleは関連するダイアログの動作を部分的に損なう結果となりました。
Appleと予期せぬ終了ダイアログの関係がよく分かりません。これらのダイアログを簡単に操作して期待通りに動作させるのは比較的簡単なように思えますが、どうやらそうではないようです。Appleは、長らく明確とは言えないまま放置されてきた機能に、混乱とバグを加えてしまったのです(以前Mac Observerの記事で取り上げました)。
予期しない終了ダイアログの混乱
予期せず終了すると、通常、「無視」、「再開」、「報告」の 3 つのオプションを含むダイアログが表示されます (以下に表示)。

「報告」をクリックすると、さらに別のダイアログがポップアップ表示され、「詳細を表示」、「送信しない」、「Apple に送信」の 3 つのオプションが表示されます (以下に表示)。

「Apple に送信」をクリックすると、シートがドロップダウンし、関連する診断情報と使用状況情報を Apple に送信するかどうかの同意または同意しないを選択できます (以下に表示)。

いずれの選択肢を選んでも、「今後このメッセージを表示しない」チェックボックスを有効または無効にすることができます。これはデフォルトで有効になっています。ここで注目すべきはこのチェックボックスです。有効のままにしておくと、次回予期せぬ終了が発生して「Apple に送信」をクリックした際に、同意/不同意のシートが表示されなくなります(「今後このメッセージを表示しない」という表現通りです)。
しかし、気が変わって「賛成」から「反対」に変更したいと思ったとします。変更に必要なシートがもう下に落ちてこない場合は、どうすればいいでしょうか?

答えは、コンソールを起動し、「環境設定」メニュー項目を選択することです。開いたウィンドウ(右側に表示)に、「匿名の使用状況データと診断データをAppleに自動送信する」というチェックボックスがあります。このオプションを無効にすると、次回予期せず終了したときに「同意/不同意」シートが再び表示されます。
少なくとも、それが本来の動作です。問題は、少なくとも私にとっては、その選択肢がグレーアウトしたまま変更できないことです。つまり、「賛成/反対」シートを再びドロップダウンさせることができず、以前の選択を変えることもできませんでした。
注:Mac OS X 10.6.2では、コンソールの環境設定に診断レポート用の「リセット」ボタンが追加されました。このボタンは、10.6.3の「自動的に送信…」チェックボックスと同じ基本的な機能を提供します。リセットが意図したとおりに動作するのに、特に問題は発生しませんでした。
「SubmitDiagInfo」plistの回避策
解決策の一つは、「今後このメッセージを表示しない」チェックボックスを毎回無効にすることです。しかし、少し調べた結果、「今後このメッセージを表示しない」チェックボックスをオンにしていても有効な回避策を見つけました。
コンソールのチェックボックスが有効かどうか、そして「同意/不同意」シートがドロップダウンするかどうかを決定する.plistファイルがあります。このファイルはcom.apple.SubmitDiagInfo.###,plist(###はコンピュータ固有の長い16進コード文字列)です。この.plistファイルは、ホームディレクトリのLibrary/Preferences/ByHostフォルダにあります。このファイルを削除すると、次回予期せぬ終了が発生した際に「同意/不同意」シートが再び表示されます。
これにより以前の選択を変更できますが、永続的な修正ではありません。コンソールの設定にあるチェックボックスは、後で再度変更してもグレー表示のままになる可能性があります。しかし、さらに調査を進めた結果、何が問題なのかを正確に把握できました。
プロパティリストエディターで .plist ファイルを開くと、AutoSubmit と AutoSubmitV2 という 2 つの類似したブール型プロパティが見つかります (後者は 10.6.3 で追加された新しいプロパティです)。

AutoSubmit は、コンソールのチェックボックスオプションを必要に応じて変更できるかどうかを決定するようです。AutoSubmitV2 は、「同意/不同意」シートをドロップダウンさせるかどうかを決定するようです。理想的には、これら 2 つのプロパティの値は一致している必要があります。しかし、残念ながら、必ずしもそうとは限りません。例えば、AutoSubmitV2 が有効になっているのに AutoSubmit が有効になっていないという状況が発生することがあります。この場合、シートはドロップダウンしないものの、それを戻すためのコンソールオプションを選択できないという、前述の状況が発生します。
結局のところ、「今後このメッセージを表示しない」を有効にしつつ、症状の再発を防ぐ方法は見つかりませんでした。今のところ、同じ状況に陥った場合は、.plistファイルを使った回避策を使うか、Mac OS X 10.6.4での修正を期待するしかありません。
ダイアログのユーザーインターフェース
このバグを無視した場合でも、予期しない終了ダイアログのユーザー インターフェイスを微調整する必要がある可能性があります。
例えば、最初のダイアログで「無視」を選択できます。そうすると、Apple にデータは送信されません。ここまでは順調です。
代わりに「報告」を選択した場合、2番目に表示されるダイアログで「送信しない」をクリックできます。これも、Appleにデータが送信されないことを意味します(ただし、本当に送信したくないのであれば、「無視」ではなく「報告」を選択する必要はありません)。
そのまま「Apple に送信」を選択すると、「同意しない」オプションが表示されます (これは、データの送信を選択したにもかかわらず、3 回目にはデータが Apple に送信されないことを意味します)。
少し冗長で分かりにくい気がします。もう少しシンプルにできないでしょうか?例えば、Appleのサポート記事に記載されている3つのオプション(自動レポート、レポートなし、毎回確認)を最初に選択できるようにするなどです。