2020-01-30T12:05:20+09:00

OpenHelpBook 1.0.1 : バンドル内の Help Book を ヘルプビューアで表示する AppleScript ライブラリ

任意のバンドル内の Help Book を ヘルプビューアで表示するAppleScript ライブラリです。

macOS では、アプリケーションなどでは、そのバンドル内の HTML で書かれたヘルプファイル(Help Book といいます)をヘルプビューアで表示させることができます。アプリケーションとそのヘルプファイルをひとまとめにして扱うことができますので、非常にスマートな方法だと思います。

OpenHelpBook.scptd は、AppleScript から次の様なことをできるようにします。

ヘルプビューアに Help Book を登録すると、ヘルプビューアの高度な検索機能やAppleScript の実行機能が使えるようになります。普通の HTML ファイルより、使いやすい説明書を作れます。

変更点:

Help Book をヘルプビューアに表示させるためには Carbon API を使う必要があって、AppleScript だけではできないんですね。そこで OpenHelpBook のバンドル内のコマンドラインツールを呼び出しています。このコマンドラインツールは、HelpBook.osax 由来のコードであるため、CoreFoundation および C 言語で書かれています。この中で、メモリ管理を間違えて、リリースしちゃいけないオブジェクトをリリースしてました (^_^;A。

不思議なことに、OS X 10.11 以降だと間違いが顕在化しないんですよね。なんでだろう。

Carbon API にアクセスするために、C で作ったコマンドラインツールを利用しているけど、JavaScript for Automation (JXA) を利用してもいいですね。OS X 10.9 では動かなくなるけど。JXA では Carbon にアクセスできるのに、AppleScript からはできないのは、なんとも残念。

もう一つ、Notarization に対応したと思っていたけど、色々間違えていました。これまで作った、ダウンロードパッケージを全部作りなおさなければなりません (T^T)。