「制御するアクセスを要求」に対して、毎回、何度も確認を求められる.

macOS Mojave 10.14.6(18G9323)

“自作のAppleScriptアプリケーション名”が“Finder.app”を制御するアクセスを要求しています。制御を許可すると、“Finder.app”の書類やデータにアクセスしたり、そのアプリケーション内で操作を実行したりできるようになります。

のようなダイアログが表示され、その都度「OK」ボタンを押して承認するのですが、それでなお、毎回確認を求められます.これまで数度(一度、ではなく)認証をすればこのようなダイアログが出ることはなかったのですが、ある時、Macが起動できなくなって電源ボタン長押しの強制終了をしたあと、こうなってしまいました.

ちなみに、AppleScriptのコードは以下のものです.一応ウインドウは開きますが(そしてリサイズもされます)が、その後、上記文言のダイアログが開き、選択を毎回求められるわけです.


tell application "Finder"
	activate
	delay 0.5
	set newWindow to make new Finder window
	set newWindow's bounds to {300, 0, 1600, 1200}
end tell


これまでも「毎回確認を求められる」ということはありましたが、いつしかそういったダイアログが表示されなくなり「ああ、認証されたんだな」と思っていたのですが、今回はそうはならなかったようです.

何か良い策はないでしょうか.

投稿日 2021/11/28 06:07

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2021/11/29 00:53

Mojaveでtccutilコマンドが使えるか分かりませんが、下記コマンドを実行して一度リセットしてみて下さい。


例:

tccutil reset All com.apple.ScriptEditor.id.TextEdit-Launcher


最後の引数はバンドルIDです。AppleScriptアプリケーションの場合、"com.apple.ScriptEditor.id."が先頭に付いて、その後ファイル名です。" "(スペース)は"-"(ハイフン)に変換して下さい。"Successfully ..."と出れば成功です。



バンドルIDを省略すると(多分)全てがリセットされてしまうので注意して下さい。

返信: 18
スレッドに付いたマーク ランキングトップの返信

2021/11/29 00:53 light289 への返信

Mojaveでtccutilコマンドが使えるか分かりませんが、下記コマンドを実行して一度リセットしてみて下さい。


例:

tccutil reset All com.apple.ScriptEditor.id.TextEdit-Launcher


最後の引数はバンドルIDです。AppleScriptアプリケーションの場合、"com.apple.ScriptEditor.id."が先頭に付いて、その後ファイル名です。" "(スペース)は"-"(ハイフン)に変換して下さい。"Successfully ..."と出れば成功です。



バンドルIDを省略すると(多分)全てがリセットされてしまうので注意して下さい。

2021/12/01 05:57 Hiro__S への返信

アプレットA - 起動の度にダイアログが表示される

tell application "Finder"
    set win to make new Finder Window
end tell


アプレットB - 最初の1回だけダイアログが表示される

tell application "Finder"
    make new Finder Window
end tell


アプレットC - 最初の1回だけダイアログが表示される

script obj
    tell application "Finder"
        set win to make new Finder window
    end tell
end script
tell obj to run


「アプレットA」は内部の main.scpt のハッシュ値が起動の度に異なります。一方「アプレットB」と「アプレットC」は main.scpt のハッシュ値は何度起動しても変わりません。


コマンド

shasum -a 256 A.app/Contents/Resources/Scripts/main.scpt | cut -d' ' -f1


結果

1回目: a767459803d3be47a3f68109255d02930bc291eee2dd62872c56ac5630d7938b
2回目: cdc6b5090bfe0b46bd4560bf32e00e053c86bfcda94ed077aeea77186f86225c
3回目: 61384e03aaf0424e4f39b5216d843cb644deaa921ca395a02e969137fe32cc5f


コマンド

shasum -a 256 B.app/Contents/Resources/Scripts/main.scpt | cut -d' ' -f1


結果

1回目: 919af994518b389c8011aa7a7bc57a4b5202523d35dab0b2ac69c6bbbce3c824
2回目: 919af994518b389c8011aa7a7bc57a4b5202523d35dab0b2ac69c6bbbce3c824
3回目: 919af994518b389c8011aa7a7bc57a4b5202523d35dab0b2ac69c6bbbce3c824


トップレベルの変数の値が main.scpt 内に保存され、起動の度に変数の値が変わるのでダイアログが表示される、、、ということなのかもしれません。


2021/12/01 02:53 light289 への返信

当方 (Mojave 10.14.6 18G9323) でも同様の問題が起きました。Mojave のバグでしょうね...。


こんな感じにすると大丈夫のようです。


tell application "Finder"
    activate
    delay 0.5
    make new Finder window
    set Finder window 1's bounds to {0, 23, 800, 450}
end tell



理由は分かりませんが、JavaScript は問題ないようです。


'use strict';

var Finder = Application('Finder');

function run() {
    Finder.activate();
    const win = Finder.make({new: 'finderWindow'});
    win.bounds = {"x":0, "y":23, "width":800, "height":450}
}


2021/12/02 02:51 Hiro__S への返信

結局、以下のスクリプトで決定しました.

ファイル名:サイズと位置を指定した新しいFinderウインドウを開く.app

on run
	its main()
end run
on main()
	tell application "Finder"
		activate
		delay 0.5
		set newWindow to make new Finder window
		set newWindow's bounds to {300, 0, 1600, 1200}
	end tell
end main

一度のOKボタン押下で次からこのダイアログは表示されなくなりました.

みなさん、たくさんのご指摘・ご教示ありがとうございました.

2021/12/01 20:06 light289 への返信

light289 さんによる書き込み:

「Mojaveより前のOSだと起きなかった問題」ということでしょうかね.実際これまで、気にしたことはありませんでしたから.


High Sierra で試したところ問題ありませんでした。Mojave で強化されたセキュリティに AppleScript が引っかかってしまったのかもしれませんね。


変数の値が変わっただけでアプレットを起動する度にダイアログが表示されるのではあまりにも使い勝手が悪いです。というか、これじゃ使い物にならないと思います。


hohokihai さんの環境では問題ないということなので、Catalina 以降のどのバージョンかで改善されたんだと思います。


ということで、Mojave 環境下でアプリケーション形式の AppleScript を使う場合、多少面倒でもスクリプトオブジェクトでラッピングするのが良いように思います。


2021/12/01 07:23 hohokihai への返信

>Bundle identifierの打ち間違えなどありませんか?

もちろん「ない」と考えていますが、ターミナルはあまり触らないもので、たとえば必要な場所に space がなかったり、そのまた逆もしかりで、そもそも入力にミスがあるのかもしれません.はじめ、貼り付けていただいたものをコピー&ペーストすれば良いと思っていましたが、できませんでしたし(それが画像だということは後に知るのですが……).

それと Bundle identifier に関してはスクリプトエディタの「識別子」にある文字列と、plistを参照して得た文字列が同一のものなので、それ自体に誤りがあるとは思えません.

2021/12/01 07:42 Hiro__S への返信

のちに投稿いただいたハッシュ値云々のお話は、てっきり property の時にだけ起こることだと思っていたので、その認識は改めたいと思います.言われてみれば「トップレベルの変数」という意味では property も今回の件も同じことなので、納得できます.毎度勉強になります..


>Mojave のバグでしょうね...。

上記のことを踏まえると、バグというより「Mojaveより前のOSだと起きなかった問題」ということでしょうかね.実際これまで、気にしたことはありませんでしたから.

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

「制御するアクセスを要求」に対して、毎回、何度も確認を求められる.

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。