長らく愛用している cooViewer が M1 Mac にネイティブ対応していなかったので対応させてみた。
['22/09 追記] $ git clone
から一発でビルドできるようにした → コチラ
背景
macOS の老舗画像ビューワである cooViewer を私は長らく愛用している。
2020/02 に Catalina 以降対応のためと思われる 64bit対応版をリリースされているが、
それ以降のリリースはなく、Appleシリコン対応されていないため、
M1 な Mac では Rosetta2 経由の動作となる。
今回はこの cooViewer を Appleシリコン/arm64 に対応させ、
M1 Mac でネイティブ動作するようにする。
Appleシリコン/arm64 版ビルド
ソースコードのダウンロード
本家(Github) から最新のソースコードをダウンロードする (v1.2b25)。
外部フレームワークバイナリへの対応
ダウンロードした "ソースコード" の中には、外部フレームワークのビルド済みバイナリが同梱されている。
しかし intel 版しか内包されていないので、この状態で arm64 ビルドをしようとしても失敗する。
足りないのは以下の二つ。
- UniversalDetector
- XADMaster framework
今回はこれらを他のアプリケーションから拝借することにした。
私は The○narchiver.app から上記フレームワークごと物理コピーした。
一方 XADMaster については上記コピーした一式内には Header 類がないので、
ダウンロードした大元のソースコードに同梱されていた Header をコピーしなおした。
ビルド
プロジェクトファイル (*.xcodeproj) を含むフォルダ内でターミナル等から以下を実行。
1 |
$ xcodebuild -arch arm64 -sdk macosx12 |
上記コマンドで Appleシリコン専用ビルドができる。
-arch x86_64
を追加すると Universal Binary(2) になる。
macosx12
というのは macOS 12 Monterey 以降向け, 必要に応じて変更。
ビルドを実行すると build/Default
以下に cooViewer.app が生成されている。
できあがった app を "Cmd + i" で情報を表示すると
「種類: アプリケーション (Apple シリコン)」等となっているのが確認できる。
これでサクサク, すっきり。
蛇足
cooViewer は WebP のアーカイブも正しく表示することができる。
実は母艦はハード, ソフト共に長らく更新されていなかったので気づいていなかったのだが、
どうやら macOS 11 Big Sur から OS として WebP にネイティブ対応したため、
cooViewer でも WebP が扱えるようになっていたようだ。
追記 ['22/09]
$ git clone
から一発でビルドできるようにしました → コチラ