Edited at

【Applescript】Mojave以降でアクセス許可のメッセージが毎回出るのを防ぐ

Applescriptをアプリケーション形式で書き出したものをmacOS 10.14(Mojave)で実行すると、以下のような確認ダイアログが毎回出てしまいます。

「"hoge"が"fuga"を制御するアクセスを要求しています。制限を許可すると、"fuga"の書類やデータにアクセスしたり、そのアプリケーション内で操作を実行したりできるようになります。」

どうやらMojaveでセキュリティが強化されたゆえの現象みたいです。

これを出ないようにするには以下のようにします。

script MyScript

-- ここに処理を書く
end script
on run
local tempScript
copy MyScript to tempScript
run tempScript
end run

以下から引用して、コメントを変えただけですが。

https://stackoverflow.com/questions/52771415/how-to-make-a-script-that-doesnt-ask-permission-every-time-its-opened

解説の訳は、ざっくりとこんな感じでしょうか。


通常のappは1度許可すればその後はダイアログは出ない。

Applescript製のものは終了時にスクリプト内のトップレベル変数の値が書き換わるので、実行するたびに別のappだと判断されて、毎回ダイアログが出る。


Applescriptはドが付く初心者なのでトップレベル変数がなんのことかよく分かってないのですが、そういうことらしいです。