リリース前になってあれやこれやと機能の見直しを行ったために……いや、正確に言えば不具合が見つかったため、その対策コードを書いていた。
v0.34では、アーキテクチャの判定精度を向上させ、Virtual PCなどのイレギュラーなパッケージ形式にも追従させるようにした。Info.plistにCFBundleExecutableのエントリがないアプリケーション、という非常にイレギュラーなアプリケーションがあり、それがMicrosoft Virtual PCとLamkesoftのCADintoshだったのだ。
このため、CFBundleExecutableをそのままアイコンのファイル名にする目論見が崩れ、実行ファイル本体を捜索する処理を付加することに。
たいていはアプリ名称と同名の実行ファイルがバンドル内に存在するはずだが、それも存在しない場合には……アプリケーションのバンドル内のContents/MacOSフォルダで最もファイルサイズの大きなファイルを割り出して、そいつのアーキテクチャを判定することにした。
フタを開けてみるまで、世の中のアプリケーションの作り方がここまでバラバラであるとは気づかず、「想定の範囲外」の出来事のオンパレードだったのだ。
今回のv0.34では各ユーザーの実行環境で分散処理を行って、アプリのアイコンを画像に変換して分散アップロードを行っていただく、というのが新機軸。また、バイナリアーキテクチャごとに色の異なるラベルを付ける「アーキテクチャラベリング」機能を搭載した。
細かいところでは、ウィンドウのスムースリサイズ機能が付き、システム環境設定のウィンドウのように設定ウインドウがリサイズする(ここだけObjective-Cのパーツを利用。ほかはAppleScriptで記述)。
あとは、自分のアプリではおなじみの、環境設定ウィンドウのフェードイン/フェードアウト表示といったところか。