System EventsやFinderの補助アクセス権限エラー対処法

macOSでは一部のアプリや自分で作成したスクリプトなどの実行時に「System Eventsでエラーが起きました。〜には補助アクセスは許可されません」、もしくは「Apple Eventsを送信する権限がありません」というエラーが出て起動できないことがある。

今回はSystem Events等のアクセス権限エラーへの対処法をまとめる。

System EventsやFinderのアクセス権限エラー対処法

まず、System EventsやFinderの機能にアクセスするアプリケーションはシステム環境設定の「セキュリティとプライバシー」の「オートメーション」の項目においてそれらのアプリにチェックマークが入っている必要がある。

アクセス権限エラーは何らかの理由によりこのオートメーションにアプリケーションが追加されないか、追加されていても他のアプリに特別なアクセス権限が与えられていないことが原因だ。

なお、このオートメーションへのアプリケーションの追加はユーザー自身では直接行えなず、アプリケーションからの要求があった際にmacOSが自動検知してユーザーに許可を取るという方式を取っている。

アクセシビリティにエラーが出るアプリを追加する

「セキュリティとプライバシー」の「アクセシビリティ」の項目に問題が出ているアプリケーションを追加することでエラーを解消できる場合がある。

アクセシビリティにエラーが出るアプリとスクリプトエディタやAutomatorを追加する

「アクセシビリティ」にエラーが出るアプリと「スクリプトエディタ(またはAutomator)」の両方を追加することでエラーを解消できる場合がある。

フルディスクアクセスにターミナルを追加する

もしエラーが出るアプリケーションやスクリプトがターミナルにアクセスする挙動を行うものであれば「フルディスクアクセス」に「ターミナル」を追加する。

アクセシビリティでエラーが出るアプリケーションを削除して再度追加

既にアクセシビリティでアプリケーションを追加している場合は「-」ボタンでアクセシビリティの項目からエラーが出ているアプリケーションを一度削除し、再度追加するのも有効だ。

アクセス権限エラー-1743はmacOSのバグが原因

なお、補助アクセス権限のエラーではなく「Apple Eventsを送信する権限がありません -1743」というエラーが出る場合はmacOSのバグが原因の可能性が極めて高い。

参考 macOS Mojave, Automator “Not authorized to send Apple events to System Events.”stack overflow

過去にはmacOS Mojaveのベータでこのエラーが出るバグがあった他、macOS Big Surのベータにおいても同様のバグがある。

本来であればアプリケーションからSystem EventsやFinderにアクセスの要求があった場合、下記のようなダイアログが出てユーザーが任意でアクセス許可を与えることができる。

しかしmacOSのバグによりアプリケーションからのアクセス要求があった際に上記のダイアログが表示されず、ユーザーの許可をすっ飛ばしてエラーを返してしまう。

この場合は明らかなバグであるため、前述の対処法を試してみても解決できない場合、Appleにフィードバックを送信する(バグ報告をする)などしてApple側による修正を待つしかないかもしれない。

自分で作成したアプリケーションなどの場合、コード署名をする

もしAutomatorやスクリプトエディタで自分で作成したアプリケーションでエラーが出る場合、Apple Developer Program(年額11,800円)に登録しているのならコード署名を行うのがもっとも確実な解決法だ。

アクセス権限エラーは開発元が検証できない場合に悪意のあるアプリケーションからmacOSを保護する仕組みが大元の原因であるため、コード署名を行うことで「-1743エラー」であっても確実に回避することが可能だ。

コード署名を行う方法は下記記事を参照してほしい。

Macのスクリプトエディタでコード署名する方法

まとめ

近年のmacOSは極めてプロテクトが強固になっており、年々ユーザーの利便性は低下している傾向がある。

セキュリティが重要なのは承知だが、Appleは少々やりすぎなのではないかとも思う。