Help us understand the problem. What is going on with this article?

macOSをCatalinaにアップグレードしたら、Emacsが使えなくなった時の対処法

macOS を Catalina にアップグレードしたら、Emacs の dired で ~/Documents の中身を開こうとした時に、

Listing directory failed but `access-file' worked

なるエラーが出て、「書類」フォルダにアクセスできなくなっていました。

この度、この問題を解決する方法が分かったため、共有します。

環境

私の環境は次のとおりです。

  • macOS Catalina (Ver. 10.15.2)
  • GNU Emacs 26.3 (build 1, x86_64-apple-darwin18.2.0, NS appkit-1671.20 Version 10.14.3 (Build 18D109)) of 2019-09-02

問題解決の手順

  1. 画面左上のリンゴマークから「システム環境設定」を開く。
  2. 「セキュリティとプライバシー」を開く。
  3. 「プライバシー」タブを開く。
  4. ウィンドウの左半分の一覧から「フルディスクアクセス」を開く。
  5. ウィンドウの左下にある錠前をクリックして、ログインパスワードを入力する。
  6. これでウィンドウの右半分の一覧にアクセスできるようになるので、その一覧の下の「+」ボタンをクリックする。
  7. ファイル選択ダイアログが開くので、内蔵ドライブのルート(「Macintosh HD」など)を開く。
  8. ここで、⌘+⇧+[.](コマンド+シフト+ピリオド)を押して、隠しファイルも表示させる。
  9. 「/usr/bin」フォルダを選ぶ。(「usr」フォルダ→「bin」フォルダを選ぶということです。)
  10. 一番右の一覧から「ruby」を選ぶ。(ファイルがたくさんあるかもしれませんが、落ち着いて。アルファベット順に並んでいます。)
  11. 「プライバシー」タブに戻った時に一覧に「ruby」が追加されていることを確認する。
  12. ウィンドウの左下にある錠前をクリックして、再びセキュリティロックを有効にする。環境設定を終了する。

これで Emacs の dired から「書類」フォルダにアクセスできるようになっているはずです。

なぜこの方法で問題が解決するのか

Stack Exchange の記事によると、

Emacs.app actually launches using a ruby script. As a result, MacOS Catalina uses the permissions set for ruby, not the permissions for Emacs.app.

Emacs.app は Ruby のスクリプトを使って起動するため、OS は Ruby のパーミッションに基づいて Emacs のアクセス権を管理している、ということでしょうか?
ですので、Ruby への設定が効いてくる、と。

参考文献

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away