Macの手書き説明書

macOSのアプリ紹介と基本的な使い方を解説

補助アクセスを要求するようなAppleScriptはpropertyの値が保存されない

とあるAppleScriptアプリを作っていて気付いたのですが、補助アクセスを要求するようなコードが含まれているとpropertyの値が保存されない不具合があるようです。

この不具合はアプリケーション形式で保存したアプリやスクリプトファイルから当該スクリプトを実行すると再現しますが、スクリプトエディタから実行しても再現しません(正常なpropertyの動作になる)。

Mac OS 10.11.5で試しました。

applescript_property_not_work

property toggleSwitch : true

-- 補助アクセスを要求するコードを書くとproperty toggleSwitchの値が保存されない

tell application "System Events" to tell process "Dock"
set dock_dimensions to size in list 1
set dock_width to item 1 of dock_dimensions
end tell

if toggleSwitch then
display dialog "当アプリを再起動しても同じメッセージが表示されたらpropertyが保存されていません"
else
display dialog "propertyは正常に動作しています!"
end if
set toggleSwitch to not toggleSwitch
end run

バグの動作を確認したい人は、上のAppleScriptをスクリプトエディタで開き、アプリとして保存して、「システム環境設定」 > 「セキュリティとプライバシー」 > 「アクセシビリティ」のウィンドウにアプリをドラッグ&ドロップして登録してから、実行してみてください。

古いAppleScriptアプリの動作がおかしい、設定が保存されないなどの不具合があったら、このpropertyの値が保存されないバグを疑った方が良いかもしれません。

広告


関連記事

広告

この記事を共有する

広告

関連記事

2 Comments

名称未設定  

これはバグじゃないですよ。
property を保存して scpt が更新されると、別のアプリケーションとみなされて、GUI Scripting へのアクセス許可が外れちゃうから、それを避けるための措置です。

2016/07/08 (Fri) 18:47 | EDIT | REPLY |   

veadar  

No title

なるほど。

じゃあもう仕様なので、この現象がなくなる可能性はないんですね。

2016/07/09 (Sat) 01:56 | EDIT | REPLY |   

Add your comment