macOS 12.3 beta 3/beta 4で発生していたAppleScriptの処理系全般にわたって発生していた障害が、beta 5で解消されたように見えます。
本Blogへのプログラムリスト掲載時に使っている「AS Publisher v1.8」(AppleScriptでAppleScriptを処理して掲載用のHTMLを生成するプログラム)自体が動作せず、Blogに投稿できない(横にある別Ver.OSのマシンでやればいいんですが)状況が続いていました。
本日配信されていたmacOS 12.3 beta 5で解消されたように見えます。手元にあるScriptが膨大すぎて、全数チェックするわけにもいきませんが、オープンできずにいたAppleScript書類はオープン/実行できています。
昨日リリースした書籍に掲載予定だったリストに動かないものがあって、掲載を見送る処理&使用しているプログラムの作者にお詫びのメールを送っていたのですが、なんのことはない、このbeta 3/4のバグのせいでした(beta 5にアップデートしたら何事もなかったように動いた)。
AppleScript書類をオープンできないとか実行できないといった「最悪レベルの問題」を起こさないことは確認できていますが、やっぱり「内部の表があふれる」的なエラーを出すScriptはまだあるようです。
macOS 11や10.15でそのようなエラーを起こす例を見なかったScriptなので、やはりmacOS 12環境に固有の問題が何かまだ残されているということなんでしょう。
macOS 12.3 beta 5、古めのMac OS X 10.2ぐらいの時期に書かれたAppleScript書類で、現在すでにOSにインストールされていない各種補助アプリケーションを呼び出しているものを、アプリケーション選択ダイアログを出さずに、いきなり「オープンできない」とダイアログを出して切り捨てる動作を行なっています。Script Debugger経由ではオープンできるため、依然として注意が必要です。
K-mura says:
きのう macOS 12.3 にしたら AppleScript でファイルを開けなくなりました。
試しに m4a ファイルを選択して
tell application “Finder”
open selection
end tell
を実行するとアプリケーションは起動するけれど
アプリケーション“QuickTime Player”を開けません。
-1703
のダイアログが出ます。
Apple コミュニティでも同様の質問をされている方がいます。
Takaaki Naganoya says:
そのダイアログは出ませんね。ただ、自分のmacOS 12.3環境で試してみると、
「ファイルのオープンによって暗示的にアプリケーションの起動+ファイルオープン」
という動作を受け付けないみたいです。上記のScriptも、
tell application “QuickTime Player” to activate
tell application “Finder”
open selection
end tell
と、「アプリケーションの起動」と「ファイルのオープン」を分離すると問題なく実行するようです。これは、eppc://でLAN上の他のMacにコマンドを送るときと同じ動作です。
K-mura says:
tell application “QuickTime Player” to activate
をつけて試しましたがやはりエラーダイアログが出ます。
が、別の動画、音声ファイルを選択して実行してみたら、開けるものと開けないものがあったりで訳がわからなくなりました。
MacBook Pro (13-inch, 2019, Two Thunderbolt 3 ports) macOS 12.3 (21E230)
です。
Takaaki Naganoya says:
ウチのOS環境も同じビルドNo.のようです。スクリプトエディタに対してフルディスクアクセス権限を与えているとか、アクセシビリティ権限を与えています(システム環境設定の「セキュリティとプライバシー」で与えられる権限はひととおり」)。
SIPは解除していません。
Takaaki Naganoya says:
これは解決策ではないのですが、各ファイルにファイルの拡張属性(xattr)の「com.apple.quarantine」がついているとオープンさせないのかもしれません。
Terminal.app上でxattrコマンドを使ってオープンできなかったファイルを確認してみていただけますか?
「com.apple.quarantine」がついている(入手経路が信用できないという隔離情報つき)ものは「com.apple.quarantine」が表示されます。
そして、オープンできなかったファイルのxattrを削除してみると、動作に変化が現れる可能性があります。
K-mura says:
Apple コミュニティの方にも書いたのですが
AppleScript から開けなかったファイルも、Finder でダブルクリックして開くと以降スクリプトからも開けるようになります。
開けなかった時
com.apple.lastuseddate#PS
com.apple.macl
com.apple.metadata:_kMDItemUserTags
開いた後
com.apple.lastuseddate#PS
com.apple.macl
com.apple.metadata:_kMDItemUserTags
com.apple.quarantine
K-mura says:
開けるファイルの xattr を削除するとまた開けなくなりました。
Takaaki Naganoya says:
「xattrにcom.apple.quarantineがついているとファイルのオープンができない」という自分の書き方が間違いで、「xattrにcom.apple.quarantineがついていないとファイルのオープンができない」という状況なんですね。
一歩前進? 状況がより詳細にわかっただけで、問題の解決ができたという状況ではないようですけれども。