macOS用Drop Compress Imageのビルド
このガイドでは、macOSシステムでの開発環境のセットアップとDrop Compress Imageのビルド手順を説明します。
前提条件
開始する前に、以下が必要です:
- macOS 10.15 (Catalina) 以降
- ソフトウェアインストール用の管理者権限
- ターミナルコマンドの基本的な知識
ステップ 1: Xcode Command Line Toolsのインストール
まず、clangやmakeなどの重要な開発ツールを提供するXcode Command Line Toolsをインストールします:
xcode-select --install
これにより、コマンドライン開発者ツールをインストールするかどうかを尋ねるダイアログが表示されます。インストールをクリックして、インストールが完了するまで待ちます。
インストールの確認
ツールが正しくインストールされたことを確認します:
clang --version
以下のような出力が表示されます:
Apple clang version 15.0.0 (clang-1500.0.40.1)
Target: arm64-apple-darwin23.0.0
Thread model: posix
ステップ 2: Homebrewのインストール
HomebrewはmacOS用のパッケージマネージャーで、開発ツールやライブラリのインストールを簡単にします。
Homebrewのインストール
ターミナルを開いて実行します:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
HomebrewをPATHに追加
Apple Silicon Mac(M1/M2/M3)の場合、HomebrewをPATHに追加します:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
source ~/.zshrc
Intel Macの場合、Homebrewは/usr/localにインストールされ、既にPATHに含まれているはずです。
Homebrewインストールの確認
brew --version
ステップ 3: Rustのインストール
Drop Compress ImageはRustで構築されているため、Rustツールチェインをインストールする必要があります。
rustup経由でRustをインストール
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
プロンプトが表示されたら、オプション1(デフォルトインストール)を選択します。
シェルの設定
source ~/.cargo/env
Rustインストールの確認
rustc --version
cargo --version
rustcとcargoの両方でバージョン情報が表示されます。
ステップ 4: Node.jsのインストール
Drop Compress ImageのフロントエンドはVue.jsで構築されており、Node.jsが必要です。
Homebrew経由でNode.jsをインストール
brew install node
Node.jsインストールの確認
node --version
npm --version
ステップ 5: pnpmのインストール
Drop Compress Imageは、パフォーマンスとディスク効率を向上させるためにpnpmをパッケージマネージャーとして使用します。
pnpmのインストール
brew install pnpm
pnpmインストールの確認
pnpm --version
ステップ 6: vcpkgのセットアップと依存関係のインストール
このプロジェクトではvcpkgを使用してC/C++画像処理ライブラリ(libaom、libavif、libjxl等)を管理します。
vcpkgのインストール
# vcpkgをクローン
git clone https://github.com/Microsoft/vcpkg.git ~/Developer/vcpkg
# vcpkgをブートストラップ
cd ~/Developer/vcpkg
./bootstrap-vcpkg.sh
# 環境変数を設定(~/.zshrc に追加)
echo 'export VCPKG_ROOT="$HOME/Developer/vcpkg"' >> ~/.zshrc
echo 'export PATH="$VCPKG_ROOT:$PATH"' >> ~/.zshrc
source ~/.zshrc
依存関係のインストール
自動インストールスクリプトを使用(推奨):
cd ~/path/to/DropWebP/app/src-tauri
./setup-vcpkg.sh
または手動でインストール:
cd ~/Developer/vcpkg
# Apple Silicon (M1/M2/M3) の場合
./vcpkg install aom:arm64-osx
./vcpkg install libavif[aom]:arm64-osx
./vcpkg install libjxl:arm64-osx
./vcpkg install libwebp:arm64-osx
./vcpkg install openjpeg:arm64-osx
./vcpkg install libjpeg-turbo:arm64-osx
./vcpkg install lcms:arm64-osx
# Intel Mac の場合
./vcpkg install aom:x64-osx
./vcpkg install libavif[aom]:x64-osx
./vcpkg install libjxl:x64-osx
./vcpkg install libwebp:x64-osx
./vcpkg install openjpeg:x64-osx
./vcpkg install libjpeg-turbo:x64-osx
./vcpkg install lcms:x64-osx
インストールされるライブラリ:
- libaom: AV1エンコーダー(AVIF形式用、必須)
- libavif: AVIF画像フォーマット
- libjxl: JPEG XL画像フォーマット
- libwebp: WebP画像フォーマット
- openjpeg: JPEG 2000画像フォーマット
- libjpeg-turbo: JPEG画像処理(jpegli用)
- lcms: Little CMS カラーマネジメント
インストール確認
./vcpkg list | grep -E "aom|avif|jxl|webp|openjpeg|jpeg|lcms"
ステップ 7: Drop Compress Imageのクローンとビルド
これでDrop Compress Imageをクローンしてビルドする準備が整いました。
リポジトリのクローン
git clone https://github.com/logue/DropWebP.git
cd DropWebP
フロントエンド依存関係のインストール
# すべてのワークスペース依存関係をインストール
pnpm install
Tauri CLI v2のインストール
# Tauri CLI v2をグローバルにインストール
pnpm add -g @tauri-apps/cli@next
アプリケーションのビルド
開発用:
# 開発モードで実行
pnpm dev:tauri
本番用:
# 本番用にビルド
pnpm build:tauri
ステップ 8: プラットフォーム固有の考慮事項
Apple Silicon (M1/M2/M3) Mac
Apple Silicon Macを使用している場合、一部の依存関係はarm64アーキテクチャ用に特別にコンパイルする必要があります。最新のパッケージはこれを自動的に処理しますが、問題が発生した場合:
# アーキテクチャを確認
uname -m
# 出力: arm64
# 必要に応じて、Rustに正しいターゲット用にビルドを強制
rustup target add aarch64-apple-darwin
Intel Mac
Intel Macの場合、デフォルトのx86_64ターゲットが問題なく動作するはずです:
# アーキテクチャを確認
uname -m
# 出力: x86_64
# 正しいRustターゲットがインストールされていることを確認
rustup target add x86_64-apple-darwin
コード署名(オプション)
ビルドしたアプリケーションを配布したい場合は、Apple Developer証明書で署名する必要があります:
# 利用可能な署名ID を確認
security find-identity -v -p codesigning
# 開発者証明書を持っている場合、Tauriが自動的に署名できます
# tauri.conf.jsonに以下を追加:
{
"bundle": {
"macOS": {
"signing": {
"identity": "Developer ID Application: Your Name (TEAM_ID)"
}
}
}
}
トラブルシューティング
よくある問題
- 権限拒否エラー
# Homebrewの権限を修正 sudo chown -R $(whoami) /opt/homebrew - インストール後にコマンドが見つからない
# シェルプロファイルを再読み込み source ~/.zshrc # またはターミナルを再起動 - ネイティブ依存関係でのビルド失敗
# ビルドキャッシュをクリア cargo clean pnpm clean # すべてを再ビルド pnpm install pnpm tauri build - Rustターゲットの問題
# インストール済みターゲットをリスト表示 rustup target list --installed # システムに適切なターゲットを追加 rustup target add aarch64-apple-darwin # Apple Silicon rustup target add x86_64-apple-darwin # Intel
ヘルプを得る
ここでカバーされていない問題が発生した場合:
- Drop Compress Imageリポジトリで既知の問題を確認
- macOS固有のガイダンスについてTauri v2ドキュメントを確認
- 既存のGitHub Issueを検索するか、新しいIssueを作成
次のステップ
Drop Compress Imageのビルドが成功したら:
- テストの実行:
pnpm testを実行してすべてが正しく動作することを確認 - 開発: ホットリロードでの開発には
pnpm dev:tauriを使用 - カスタマイズ: コードベースを探索して変更を加える
- 配布: 配布可能なパッケージを作成するには
pnpm build:tauriを使用
これでmacOSでDrop Compress Imageを開発およびビルドする準備が整いました!
Intel Mac向けビルド
Apple Silicon Mac (M1/M2/M3) からIntel Mac (x86_64) 向けにクロスコンパイルする場合の手順です。
方法1: Universal Binary(推奨)
Intel MacとApple Silicon Macの両方で動作する単一のバイナリを作成します:
cd app
pnpm run build:tauri:mac-universal
メリット:
- 追加のライブラリインストール不要
- 1つのバイナリで両アーキテクチャをサポート
- ユーザーは自分のMacのアーキテクチャを気にする必要がない
デメリット:
- ファイルサイズが約2倍になる(両アーキテクチャのコードを含むため)
方法2: Intel専用ビルド
Intel Mac専用のバイナリを作成する場合は、x86_64版のライブラリが必要です。
ステップ1: x86_64版Homebrewをインストール
arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
ステップ2: x86_64版ライブラリをインストール
arch -x86_64 /usr/local/bin/brew install libavif jpeg-xl
または、セットアップスクリプトを使用:
./scripts/setup-x86-libs.sh
ステップ3: ビルド実行
cd app
pnpm run build:tauri:mac-x64
ビルドターゲット一覧
# Apple Silicon専用
pnpm run build:tauri:mac-arm64
# Intel Mac専用
pnpm run build:tauri:mac-x64
# Universal Binary(両対応)
pnpm run build:tauri:mac-universal
成果物の場所
app/src-tauri/target/
├── aarch64-apple-darwin/release/bundle/ # ARM64専用
├── x86_64-apple-darwin/release/bundle/ # x86_64専用
└── universal-apple-darwin/release/bundle/ # Universal(両対応)