AppleScript Studio(Xcode)でデバッグを行っていると、時々うまくブレークポイントで止まってくれなかったり、Xcode がクラッシュしてしまうことがあります。私も FlightGear Alternative を開発している最中、それまでは大丈夫だったのに、デバッグを始めると必ず Xcode が落ちてしまうようになり、しばらくはデバッグ機能を使うのを諦めていたのですが、やはりコードがそこそこ長くなると、デバッグ機能が使えないと話になりません(私以外の例だと、だいぶ古いエントリになりますが、藤棚さんのブログ の、このエントリ)。そこで、解決方法を探してみることにしました。
結論
- AppleScript Studio のコードのエンコーディングは「欧米(Mac OS Roman)」以外使うな。
どうして?
事実、コードをすべて「欧米(Mac OS Roman)」で書くように(コメントは英語、ダイアログなどに表示する文字列は localized string of
を使う)なってからは、デバッグで怪しい動作をしたことはなく、快適に使えている(なんじゃそら)。
先ほど挙げた、藤棚さんのブログのエントリがヒントに……というかほぼ答えなのですが、「ウィンドウの中のボタンを押すと、『日本語だよ』というダイアログを表示する」というごく単純なプロジェクトを作って試してみれば、すぐ分かります。
ダイアログを表示する部分にブレークポイントを設置して試してみると、やはり「日本語(Mac OS)」「日本語(Shift JIS)」「Unicode(UTF-8)」ではブレークポイントを素通りしてしまいます。ここでコードの日本語部分を英語に直して、エンコーディングを「欧米(Mac OS Roman)」に直せば、完璧に動作します。
「欧米(Mac OS Roman)」でコードを書いていると、間違えて日本語を入力したときに、エンコードを「Unicode(UTF-8)」に変更するよう勧めるダイアログが表示されますので、そのときに変更してしまわないようにご注意ください。
こういった不具合が起きるのは、やはり AppleScript の開発環境が完全に MacOS X ネイティブにはなってはいない、ということなんでしょうね。でも私は、さほど不便だとは思っていません。