macOS で Tauri 2 の開発を始めるための最初の一歩です。Tauri は Rust でビルドしたバイナリの中に macOS 標準の WebKit を載せる構成なので、必要なのは「C コンパイラ (Xcode Command Line Tools)」「Rust」「Node.js」の 3 つだけです。フル版の Xcode は不要で、App Store から十数 GB をダウンロードする必要はありません。
1. Xcode Command Line Tools のインストール
Rust のリンカが macOS の C ツールチェーンを使うため、まず Command Line Tools を入れます。ターミナルを開いて次を実行します。
xcode-select --install
ダイアログが出るので「インストール」をクリックします。数分〜十数分かかります。完了したらインストール先が表示されることを確認します。
xcode-select -p
# /Library/Developer/CommandLineTools
Xcode 本体を入れている場合は /Applications/Xcode.app/Contents/Developer が返ります。それでも問題ありません。
2. Rust のインストール
Homebrew の rust フォーミュラではなく公式の rustup を使います。ツールチェーンの更新や、Intel 版も配布する際の x86_64-apple-darwin ターゲット追加が rustup 前提だからです。
curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh
1) Proceed with standard installation を選んで Enter を押します。完了すると ~/.cargo/bin を PATH に加える行が ~/.zprofile に書き込まれます。ターミナルを開き直すか、次を実行して現在のシェルに反映してください。
. "$HOME/.cargo/env"
rustc --version
cargo --version
3. Node.js のインストール
Node.js 公式サイト の LTS 版インストーラー (.pkg) を実行するのが一番確実です。Homebrew なら次のどちらかです。
brew install node # 最新版 (LTS とは限らない)
brew install node@22 # LTS を明示。keg-only なので brew が表示する PATH 設定が必要
複数バージョンを切り替えたいなら nvm や fnm でも構いません。最後にバージョンが表示されることを確認します。
node -v
npm -v
4. プロジェクトの作成
プロジェクトを置きたいディレクトリで実行します。
npm create tauri-app@latest
質問には次のように答えます (Enter で既定値を選択できます)。
- Project name:
hello-tauri - Identifier:
com.example.hello-tauri(逆ドメイン形式。後から変えると設定の保存先パスも変わるので最初に決める) - Choose which language to use for your frontend:
TypeScript / JavaScript - Choose your package manager:
npm - Choose your UI template:
Vanilla - Choose your UI flavor:
TypeScript
cd hello-tauri
npm install
5. アプリの起動
npm run tauri dev
初回は tauri をはじめ数百のクレートをダウンロードしてコンパイルするため、M1/M2 クラスで 2〜4 分かかります。2 回目以降はキャッシュが効いて数秒〜数十秒です。
動作確認
コンパイルが終わるとウィンドウが開き、「Welcome to Tauri」で始まる見出しとテキスト入力欄が表示されます。名前を入れて「Greet」を押すと Rust 側の greet コマンドが呼ばれ、Hello, <名前>! You've been greeted from Rust! と表示されます。これが WebView と Rust の間で invoke が通っている証拠です。
src/main.ts を編集して保存するとホットリロードされ、src-tauri/src/lib.rs を編集すると Rust が再コンパイルされてウィンドウが開き直します。終了はターミナルで Ctrl + C です。
よくあるエラーと対処法
xcode-select: error: command line tools are already installed
すでに入っています。そのまま次の手順へ進んで構いません。更新は「システム設定 → 一般 → ソフトウェアアップデート」から行います。
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun
macOS をメジャーアップデートした直後によく起きます。OS 更新で Command Line Tools が無効化されているので、もう一度 xcode-select --install を実行します。Xcode 本体を使うなら sudo xcode-select -s /Applications/Xcode.app/Contents/Developer で切り替えます。
zsh: command not found: cargo
rustup のインストール後にターミナルを開き直していないのが原因です。. "$HOME/.cargo/env" を実行するか新しいタブを開きます。それでも出ないなら ~/.zprofile にその行があるか確認してください。
Apple Silicon なのに x86_64 のツールチェーンが入る
ターミナルが Rosetta で起動していると、rustup は x86_64-apple-darwin を既定にします。uname -m が x86_64 を返すなら Rosetta 起動です。ターミナル.app の「情報を見る」で「Rosetta を使用して開く」を外し、rustup default stable-aarch64-apple-darwin で切り替えます。Homebrew も /opt/homebrew (ARM) と /usr/local (Intel) の混在は避けてください。
brew install rust で入れていて rustup target add が動かない
Homebrew の rust は rustup を含みません。brew uninstall rust してから手順 2 で入れ直します。
注意点
- 開発中のアプリは署名されていません。
tauri buildで作った.appを他の Mac に配ると Gatekeeper に止められるため、配布時は署名と公証が必要です。 - macOS の WebView は Safari と同じ WebKit です。Chrome でしか動かない CSS/JS は開発モードで初めて気づくことがあります。
- 初回起動時の「ネットワーク接続を許可しますか」は Vite の開発サーバー (localhost:1420) が原因で、許可して問題ありません。
