本文へスキップ

Mac や Linux で Windows インストーラーを作成する

macOS や Linux で開発しているときに Setup.exe を作る方法を解説します。NSIS のクロスコンパイルからブラウザーだけで完結するビルドまで、そして Windows PC を持たずに結果をテストする方法も紹介します。

更新日 2026年10月31日 · 読了 5 分

Windows アプリの多くは Mac 上で開発されています。Electron や Tauri のアプリ、Python のツール、ゲーム、クロスコンパイルした Go や Rust のバイナリなどです。アプリ自体は問題なくビルドできるのに、インストーラーで行き詰まる人が多いのは、従来のインストーラー作成ツールが Windows マシンを前提にしているからです。ここでは、その回避策と、手元に Windows がないときにインストーラーをテストする方法を紹介します。

方法 1:ブラウザーでインストーラーをビルドする

ExeTup は Setup.exe をクラウドでビルドします。Mac や Linux デスクトップからの手順は次のとおりです。

  1. アプリの Windows ビルドを用意し、1 つのフォルダーに MyApp.exe とそのファイル一式が入った状態にします。Electron Packager、PyInstaller(PyInstaller はクロスコンパイルできないため、Windows か Windows の VM 上で実行)、GOOS=windows go build、cargo build --target x86_64-pc-windows-gnu などはいずれもこの形で出力します。
  2. フォルダーを .zip に圧縮してアップロードします。
  3. 名前、バージョン、発行元、インストール範囲、ショートカット、言語を入力します。.ico を追加します。
  4. ビルドして Setup.exe をダウンロードします。

お使いのマシンには何もインストールされず、スクリプトも不要です。各オプションの詳細は Setup.exe の作り方を参照してください。

方法 2:NSIS をローカルでコンパイルする

NSIS のコンパイラーは macOS と Linux で動作します。

brew install makensis        # macOS
sudo apt install nsis        # Debian, Ubuntu
makensis installer.nsi

.nsi スクリプトは自分で書きます(何が必要かは NSIS インストーラーをオンラインで作るを参照)。生成されるインストーラーは Windows でコンパイルしたものと同一です。ビルドを完全に自分の CI の中に置きたく、スクリプトの保守も厭わない場合に適した選択です。

方法 3:Wine 上で Inno Setup を使う

Inno Setup は Windows 専用ですが、そのコンパイラーは Wine 上で動作します。Wine をインストールし、その中で Inno Setup のインストーラーを実行してから、ビルドスクリプトから Wine 経由で ISCC.exe を呼び出します。実際に動作し、この方法でリリースしているプロジェクトもありますが、パスやフォントまわりで多少の手間は覚悟してください。比較は Inno Setup の代替を参照してください。

方法 4:CI で Windows ビルドを行う

GitHub Actions、GitLab、Azure Pipelines はいずれも Windows ランナーを提供しています。セットアップ手順で NSIS か Inno Setup をインストールし、そこでアプリとインストーラーをビルドして、成果物をダウンロードします。リリースパイプラインを持つチームには向いていますが、小さなツールを公開する個人開発者には大がかりです。

Mac で .ico を作る

Windows のアイコンは複数のサイズを含む .ico ファイルです。256×256 の PNG から作るには次のようにします。

brew install imagemagick
magick icon.png -define icon:auto-resize=256,128,64,48,32,16 icon.ico

アプリのバイナリ(Electron Packager の --icon、PyInstaller の --icon)とインストーラーには同じファイルを使います。

Windows PC なしでテストする

公開前に少なくとも一度はインストーラーを実行しておくべきです。選択肢を、おおよそ手間の少ない順に挙げます。

  • Windows の仮想マシン。 Apple silicon では、UTM や Parallels に Windows 11 ARM を入れれば、x64 アプリをエミュレーションで実行でき、インストールのテストには十分です。Intel Mac と Linux では VirtualBox や VMware が使えます。Microsoft のライセンスはテスト目的の評価版インストールを認めています。
  • クラウドの Windows デスクトップ。 Windows 365、Azure Virtual Desktop、または各プロバイダーの時間課金の Windows VM。
  • 同僚や顧客のマシンで最終確認:インストーラーを実行し、スタートメニューからアプリを開き、Windows の設定からアンインストールします。

macOS 上の Wine で動く Windows アプリもありますが、インストーラーを評価する手段としては信頼できません。

よくある質問

Windows アプリ自体を Mac でビルドできますか?

多くの場合は可能です。Electron、Tauri、Go、Rust、.NET は macOS から Windows をターゲットにできます。PyInstaller はクロスコンパイルできないため、Python アプリは Windows か Windows の VM 上で固め、生成されたフォルダーからインストーラーを作ってください。

ExeTup を使うのに Wine や VM は必要ですか?

いいえ。ビルドはクラウドで実行され、結果はブラウザーでダウンロードされます。VM が役に立つのは、その後でインストーラーをテストするときだけです。

Mac でコンパイルしたインストーラーは Windows で挙動が変わりますか?

いいえ。macOS の makensis でコンパイルした NSIS インストーラーは、Windows でコンパイルしたものとバイト単位で等価であり、ExeTup のクラウドビルドも同じコンパイラーを使っています。

Mac からインストーラーに署名するには?

signtool によるコード署名には Windows が必要ですが、osslsigncode なら macOS や Linux 上で同じ証明書を使って Windows の実行ファイルに署名できます。署名が重要な理由は SmartScreen のガイドを参照してください。

関連ガイド