ごんれのラボ

iOS、Android、Adobe系ソフトの自動化スクリプトのことを書き連ねています。

Adobe の ExtendScript が Apple Silicon 環境で動作するか簡単に検証した

概要

フォロワーさんから「Adobe の ExtendScript が Apple Silicon 環境で動かないという話を聞いたが、実際どうなの?」と質問されたので、簡単に調べてみた

調べたこと

  • targetengine の指定があると ExtendScript が起動しないという話は本当か
  • BridgeTalk の指定があると ExtendScript が起動しないという話は本当か
  • VS Code の ExtendScript Debugger が Apple Silicon 環境で動かないという話は本当か

結論

  • InDesign 2021、InDesign 2022 では targetengine の指定があっても ExtendScript は起動した
  • Illustrator 2021 では、Apple Silicon 環境で ScriptUI + BridgeTalk + ExtendScript は起動せず、Illustrator 2021 を Rosetta 環境で起動したら起動する
  • VS Code の ExtendScript Debugger は Apple Silicon 環境では起動せず(正確には読み込まれていない?)、Intel 版をインストールして Intel 版を起動すると ExtendScript Debugger が使用できる

調査メモ

targetengine の指定があると ExtendScript が起動しないという話は本当か

これは特にソースは見つからなかったけど、おそらく BridgeTalk の話と一緒くたになってそう。
手元で試したところ、特になにもせずスクリプトを起動できてしまった。
試したコードは以下。

//@targetengine "hoge"

var progressBar = makeProgressBar('プログレス');
progressBar.show();

function makeProgressBar(title) {
    var palette = new Window("palette");
    palette.text = title;
    palette.preferredSize.width = 700;
    palette.preferredSize.height = 60;
    palette.alignChildren = ["center","center"];
    palette.spacing = 10;
    palette.margins = 16;

    palette.myProgressBar = palette.add("progressbar", undefined, undefined, 
                            {name: "myProgressBar"});
    palette.myProgressBar.maxvalue = 100;
    palette.myProgressBar.value = 0;
    palette.myProgressBar.preferredSize.width = 450;
    palette.myProgressBar.preferredSize.height = 20;
    palette.myProgressBar.alignment = ["center","center"];

    var button = palette.add("button", undefined, undefined, {name: "OK"});
    button.onClick = function () {
        alert('Button clicked!');
    }

    return palette;
}

BridgeTalk の指定があると ExtendScript が起動しないという話は本当か

私が販売しているスクリプトが動かないという報告を受けて、その際に「BridgeTalk を利用しているとだめっぽい」と教えていただいた。
ググったところ、UserVoice にもあがっていた。 https://indesign.uservoice.com/forums/601180-adobe-indesign-bugs/suggestions/43993263-scripts-using-bridgetalk-do-not-work-on-m1-macs-r

これ、Vote 数少なくないけど、困っている人そんなにいないんですかね。
Illustrator で ScriptUI + BridgeTalk + ExtendScript という構成で作成していると、詰むはずなんだけど。
根本原因は Adobe に解決してもらうしかないので、当座の対策として Rosetta 環境で Illustrator を起動するしかなさそう。
なんのための Apple Silicon なのか。
ちなみに Rosetta 環境で起動させる手順は以下のとおり。 1. Finder で 該当アプリケーションを選択する 2. 情報を見る 3. 開いたダイアログ内の「Rosetta を使用して開く」にチェックを入れる 4. アプリケーションを起動する

VS Code の ExtendScript Debugger が Apple Silicon 環境で動かないという話は本当か

これは人づてに聞いた話がもとで調べた。
ググったら Adobe のコミュニティで解決策が提示されていた。
https://community.adobe.com/t5/indesign-discussions/vscode-extendscript-debugger-on-m1-doesn-t-ask-to-select-target-and-selectactivetarget-not-found/td-p/12006537

要約すると 公式サイト の Intel Chip をダウンロードしてインストールし、ExtendScript Debugger をインストールすればよい。
Universal、Apple Silicon も試してみたが、だめだった。
すでに ExtendScript Debugger がインストール済の場合は、VS Code を起動した時点で読み込まれるっぽい。
複数バージョンの VS Code が存在することになるので、ちょっと鬱陶しいけど、解決するまではこうするしかなさそう。

補足

  • 手頃なスクリプトが手元になかったので、InDesign で ScriptUI + BridgeTalk + ExtendScript は試していない。動かないかもしれない
  • Photoshop も滅多にスクリプトを書かないので試していない

まとめ

Apple も Adobe も 環境的に DTP に向いていない気がする。
正直だいぶやる気を削がれている。
UXP になったら少しは改善するんですかね。