Macのキーチェーンアクセスが予期しない理由で終了するときの対処方法

macOSでキーチェーンアクセスが予期しない理由で終了するようになり起動できなくなりました。対処方法はネット検索でなかなか見つからなかったのですが、解決できたので掲載します。

キーチェーンアクセスが起動しない

ある日のことキーチェーンアクセスを起動しようとしたら、予期しない理由で終了してしまう現象が発生しました。

アプリやMacを再起動したり、セーフモードで起動したり、Keychainの保存場所を移動して起動してみたりといろいろ試してみても予期しない理由で終了するようになりました。

かなりヤバい状況でネットで情報を調べて見たのですが、日本語では似た項目も含めて全く情報を得ることができませんでした。

英語で検索すると全く同じ現象で困っている人がAppleのDeveloper Forumsで投稿しているのを見つけました。

そんなに古い情報ではなく、macOS Big Surで発生しているようなのでこれを参考に実行してみると、見事解決したので私が行った作業を日本語で掲載したいと思います。

解決方法

この問題はどうもスペースを含むキーチェーンのパスが原因だそうです。

環境によっては複数あるようです。

そのキーチェーンを削除すると問題は解決します。

まずは問題のキーチェーンを探します。

以下のコマンドでキーチェーンのリストを表示します。

$ security list-keychains

表示されるリストから問題のキーチェーンをピックアップします。

私の場合は以下のような情報が表示されました。

"/private/var/folders/dm/_3dtlmys0jz92bcy1y_2pky80000gn/T/Apple Development: プログラミング教室 CodeAid (プログラミング教室 CodeAid)~~~7MAMJD/Apple Development: プログラミング教室 CodeAid (プログラミング教室 CodeAid).keychain"

この”Apple Development”のキーチェーンがスペースを含むパスを持っていて問題の原因となります。

どうもだいたい「/private/var/〜」フォルダにスペースを含むパスのキーチェーンがあるようです。

これを削除するには以下のコマンドを実行します。

$ security delete-keychain "/private/var/folders/dm/_3dtlmys0jz92bcy1y_2pky80000gn/T/Apple Development: プログラミング教室 CodeAid (プログラミング教室 CodeAid)~~~7MAMJD/Apple Development: プログラミング教室 CodeAid (プログラミング教室 CodeAid).keychain"

すると画面に以下が表示されます。

security: SecKeychainDelete: UNIX[No such file or directory]

ファイルもディレクトリも見つかりませんと言っていますが、ちゃんと削除されているようです。

再びキーチェーンのリストを見てみましょう。

$ security list-keychains

削除したキーチェーンが表示されなくなっていて、キーチェーンアクセスがちゃんと起動できれば成功です。