macOSには、GUIをもたないAppleScript専用の補助アプリケーションが標準装備されていますが、macOS 10.15になって正常に(期待通りに)動作しない状態でリリースされているので注意が必要というお話です。
macOSには、「●●Scripting」といったClassic Mac OSから引き継いだツール群と、「●●Events」といったMac OS X移行時に搭載されたAppleScriptからの呼び出し専用のツール群が、/System/Library/CoreServicesフォルダに入っています。
10.4 | 10.5 | 10.6 | 10.7 | 10.8 | 10.9 | 10.10 | 10.11 | 10.12 | 10.13 | 10.14 | 10.15 | 11.0 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ColorSyncScripting | ⬛︎ | ⬛︎ | |||||||||||
Database Events | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ |
Digital Hub Scripting | ⬛︎ | ⬛︎ | |||||||||||
FontSync Scripting | ⬛︎ | ⬛︎ | |||||||||||
Image Events | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ★ | ★ |
Keychain Scripting | ⬛︎ | ⬛︎ | ⬛︎ | ||||||||||
System Events | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ | ⬛︎ |
URL Access Scripting | ⬛︎ | ⬛︎ | ⬛︎ |
▲「最新事情がわかるAppleScript 10大最新技術 Ver.2.0」より抜粋(36ページ掲載)、最新OSに合わせて改定
最新版のmacOS 10.15でもSystem Events、Image Events、Database Eventsの3つが残っており、System Eventsはよく使われています。
Image Eventsはごくまれに、Database Eventsに至ってはほぼ実戦で利用したことがありませんが、存在していることは確認しています。
そんなImage Eventsが、macOS 10.15上でデフォルト設定ではユーザー指定の画像ファイルにアクセスできなくなっていることが確認されています。
システム環境設定の「セキュリティとプライバシー」>「セキュリティ」>「フルディスクアクセス」にImage Eventsを登録すればアクセスできるようにはなりますが、「セキュリティ強化」の美名のもとに機能の自家中毒を起こしている状態といえるでしょう。
一方、Database Eventsではそんなことはなく、Database Events経由で作成したデータベースに問題なくアクセスできますし、Database Eventsの唯一にして最大の機能である「AppleScriptのフィルタ参照でデータベースのしぼりこみ検索を行う」機能も健在です(それしかできないので)。
AppleScriptによる画像処理は、ICCプロファイルを重視してAdobe Photoshopで行うか、RGB画像をスピーディーにCocoa Frameworkで処理するかの方向に二分されており、Image Eventsで行うような基礎的な画像処理はCocoa Frameworkで肩代わりされる方向にあります。Image Eventsは入門者向けのなんちゃって画像処理レベルで用いられるものであり、個人的にはほとんど利用していません。事情を知らない入門者がハマる落とし穴が新しく1つ作られたといったところでしょうか。
▲openコマンドの引数はfile(実際にはalias)と書かれているが、furlで渡さないとオープンされないImage Events
▲SQLiteラッパーで、素朴すぎて機能がまったく不明だったDatabase Events。まさかフィルタ参照で絞り込みを行う専用ツールだったとは(ソート命令も検索命令もない謎仕様)