AppleScript Studioビギナーのはまるトラップ?

同僚がMac OS X 10.3.9用にAppleScript StudioでGUIつきのスクリプトを社内向けツールとしてリリースしようとしていた。Photoshopをコントロールしてうにゃうにゃっと作業を自動で行ってしまうというものだ。

しかし、彼の環境(G5/2.5GHz Dual Mac OS X 10.4.8)では動くものの、ターゲット環境(Mac OS X 10.3.9)では動作しないらしい。

BuildTargetが「Debug」になっているとかいうミスはさすがに(一度やったので)ない。

彼がAppleScript Studioに手を出したのはつい最近なので、困り果てて助言を求めてきた。

試しに彼がビルドしたアプリを、私のMacBook CoreDuo 1.83GHzで動かしてみたが問題なく動作する。他のG4上でもOKだ。にもかかわらず、ターゲット環境では動かないらしい。不思議だ。開発部のMacはほとんどが10.4.8環境。DTP現場のほうは10.3.9止まりで、たまにその世代のミスマッチが、トラブルを引き起こしたりする。

プログラム中に問題箇所が見当たらなさそうな雰囲気だったので、

「一度プロジェクトを放棄して、新規に別プロジェクトを作ったほうが早い」

という話をした。Interface Builder上でのイベント受信設定とスクリプト上のイベントハンドラの対応が壊れると、たとえば終了が行えないアプリケーションが出来上がったりする(実際に経験した)。


各種GUI部品が受信するイベントとスクリプトの対応がおかしくなっていると、やはり同様に問題がある(Xcode/Interface Builderはそれらの整合性チェックを行ってくれない)。これをいちいち確認するよりは、ゼロから作り直したほうがよい場合が多いのだ。Mac OS X 10.4のリリース直後のIBなどは、Nibファイルを破壊したり悪のかぎりを尽くしてくれた記憶がある。開発ツールがデータを破壊してどうする?

だが、「やり直し大作戦」でもどーーもダメだった。

ビルドを何回も繰り返すうちに、ビルド中の生成物(キャッシュ?)がおかしくなることもあるので、それを破棄してやり直す「クリーニング」はおすすめの手段ではあるが、それもダメ。

ためしに、ボタンを押すとダイアログを表示する程度の簡単なプログラムをビルドしてターゲット環境で動くかどうか確認させてみたら…………それは動くらしい(汗)。

あとは、おかしな点といえばScript Debugger 4.xの存在だ。Intel Mac上にこいつを入れていると、こいつの起動時にインストールするJavaScript OSAがいろいろと悪さをしてAppleScript Studio環境の動作をおかしくする。同様にこいつがインストールする、~/Library/Components/ScriptDebugger.componentもめちゃめちゃ動きが怪しい。ScriptDebuggerも、バージョン4.xになってCarbonからCocoaに引っ越したのはよいが、10.4のOSA(Open Scripting Architecture)系のAPIのバグのおかげでいろいろと機能に不具合があったり、実装できない機能があるようだ(10.5で本当に直ったのかが見物である)。

で、この忌々しいScrippt Debugger 4.xを一時的にHDD上から除去してみた(PPC環境では問題は確認されていない。念のため)。……それでもダメ。


ひととおり「おまじない」系の作業は行ってみたものの、一向に状況が改善されない。

「じゃあ、DiskUtilityでHDDのチェックをしてみては?」

………………問題はなかった。

結局、同僚のG5はとくに壊れていないことが判した。それどころか、彼のプログラムにも環境にも一切の問題はなかった。

…………MS-DOSフォーマットのUSBメモリーでアプリケーションを持ち運んだのが原因(汗) HFS PlusのUSBメモリに、Zip圧縮して入れて…………それでターゲット環境に持って行ったら、ちゃんと動いた次第。アプリケーションの配布という作業は、なかなかに奥の深いものである。

Copyright By Piyomaru Software. All Rights Reserved