Drop Compress Image

macOS用Drop Compress Imageのビルド

このガイドでは、macOSシステムでの開発環境のセットアップとDrop Compress Imageのビルド手順を説明します。

前提条件

開始する前に、以下が必要です:

  • macOS 10.15 (Catalina) 以降
  • ソフトウェアインストール用の管理者権限
  • ターミナルコマンドの基本的な知識

ステップ 1: Xcode Command Line Toolsのインストール

まず、clangmakeなどの重要な開発ツールを提供する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

rustccargoの両方でバージョン情報が表示されます。

ステップ 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)"
      }
    }
  }
}

トラブルシューティング

よくある問題

  1. 権限拒否エラー
    # Homebrewの権限を修正
    sudo chown -R $(whoami) /opt/homebrew
    
  2. インストール後にコマンドが見つからない
    # シェルプロファイルを再読み込み
    source ~/.zshrc
    # またはターミナルを再起動
    
  3. ネイティブ依存関係でのビルド失敗
    # ビルドキャッシュをクリア
    cargo clean
    pnpm clean
    
    # すべてを再ビルド
    pnpm install
    pnpm tauri build
    
  4. Rustターゲットの問題
    # インストール済みターゲットをリスト表示
    rustup target list --installed
    
    # システムに適切なターゲットを追加
    rustup target add aarch64-apple-darwin  # Apple Silicon
    rustup target add x86_64-apple-darwin   # Intel
    

ヘルプを得る

ここでカバーされていない問題が発生した場合:

  1. Drop Compress Imageリポジトリで既知の問題を確認
  2. macOS固有のガイダンスについてTauri v2ドキュメントを確認
  3. 既存のGitHub Issueを検索するか、新しいIssueを作成

次のステップ

Drop Compress Imageのビルドが成功したら:

  1. テストの実行: pnpm testを実行してすべてが正しく動作することを確認
  2. 開発: ホットリロードでの開発にはpnpm dev:tauriを使用
  3. カスタマイズ: コードベースを探索して変更を加える
  4. 配布: 配布可能なパッケージを作成するには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(両対応)
2025-2026 © Logue