電子書籍「AppleScript最新10大技術」に掲載の「Mac OS X/OS X/macOSのバージョンとAppleScriptの動向」の表を現在最新のmacOS 10.14に合わせて改定してみました。
macOS 10.12を歴史的な観点から再評価し、「セキュリティ至上主義期」のはじまりと位置づけた点が大きく異なります。
同バージョンでAppleScriptドロップレットへのファイル受け渡しがファイルの拡張属性(Xattr)「com.apple.quarantine」によって制御されるようになり、受け渡しの順番が変わったり、ユーザーの手によって確認されていないファイルはドロップレット処理時に無視されるなど、機能不全が目につくようになりました(10.13はOS自体が機能不全の塊なので評価に値しません)。
macOS 10.12自体にはその解消を行うための機能が用意されていないことから、この時期から「セキュリティを向上させることが最優先、既存機能に不具合が出ても整合性を維持するつもりがない」という現在のティム・クックCEO体制下における「動かないコンピュータ至上主義」(セキュリティ的には動かないコンピュータが最高だぜ!)ともいえる方針に沿った改変が行われていることを感じます。
ただし、最新のmacOS 10.14においてはシステム環境設定の「セキュリティ&プライバシー>オートメーション」の項目で、ホームディレクトリ以下のファイルにアクセスする権限を与える「フルディスクアクセス」の項目、およびアプリケーション間通信を許可する「オートメーション」の項目によって明示的に許可を行うようになった点は前進と言えるのかもしれません。
AppleScriptアプレットにおいてもこれらの制限機能による影響を受けるようになったわけですが、CodeSignすればいちいち「フルディスクアクセス」「オートメーション」項目の認証を必要としないため(CodeSignしても初回のみ聞かれる)、プロのAppleScript開発者はいままでどおりCodeSignすることで問題を回避できるはずです。
未確認ではあるものの、Terminal.appもMojaveの「フルディスクアクセス」管理下にあり、デフォルト状態ではホームディレクトリ下のファイルのcatやlsなども行えないとのこと(手動で登録すれば操作できるようになるとのこと)で、do shell scriptコマンドがどのような扱いになっているかが問題です。
なお、AppleはまだAppleScript Release Notesの「10.14 Changes」を公開しておらず、未完の作業が存在していることをうかがわせる(macOS 10.14.0はRelease版といいつつもGMビルドを公開しなかったなど、明らかにBetaレベルの仕上がり)状態です。
→ 後日、リリースノートが「macOS Mojave 10.14 Release Notes」に統合されていることが明らかになりました
Mac OS X/OS X/macOSのバージョンとAppleScriptの動向
OSバージョン | 内容 |
---|---|
10.1〜10.2 | Classic Mac OSからの移行期(Classic Mac OSからMac OS Xへの移行) |
10.3〜10.4 | 移行混乱期(Classic Mac OSからMac OS X、CarbonからCocoa、PowerPCからIntel x32) |
10.5〜10.6 | 安定期(Mac OS Xとしての当初の目標レベルに到達?) |
10.7〜10.8 | 制限化、64ビット(Intel x64)移行、iOS連携強化期。Carbon系の32ビット補助アプリケーションの切り捨て |
10.9〜10.11 | 次世代準備期。「次の10年を担う機能」の実装開始。過去のバージョンとの互換性よりも、機能強化に舵をきった? |
10.12〜10.14 | セキュリティ至上主義期。別名、「アプレット迫害期」。セキュリティ向上のためなら、OS上の各種機能の不具合が起こることもやむなし、という方向性が強まった。アプレットやドロップレットにセキュリティ上の制限がかかり、解決する方法が提供されるまでに時間がかかるようになった。10.14でシステム環境設定の「セキュリティとプライバシー>オートメーション」項目に、「フルディスクアクセス」「オートメーション」の2項目を新設してアプレットへの制御権限のコントロールを行うようになった。OSAXの事実上の廃止。 |
10.15 | 32bitアプリケーションの起動禁止 |
11.0(10.16) | iOSアプリケーションとの混在。ASからの操作が可能なものも? |