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 デスクトップからの手順は次のとおりです。
- アプリの Windows ビルドを用意し、1 つのフォルダーに
MyApp.exeとそのファイル一式が入った状態にします。Electron Packager、PyInstaller(PyInstaller はクロスコンパイルできないため、Windows か Windows の VM 上で実行)、GOOS=windows go build、cargo build --target x86_64-pc-windows-gnuなどはいずれもこの形で出力します。 - フォルダーを .zip に圧縮してアップロードします。
- 名前、バージョン、発行元、インストール範囲、ショートカット、言語を入力します。
.icoを追加します。 - ビルドして
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 のガイドを参照してください。
関連ガイド
- Windows アプリの Setup.exe を作る方法(コード不要)Setup.exe が実際に行うこと、作成する3つの方法、そしてインストーラースクリプトを書かずにアプリのフォルダーを数分でプロ品質のインストーラーに変える方法を解説します。
- Electron アプリの Windows インストーラーを作成するElectron Packager または Forge でアプリをパッケージし、出力フォルダーをウィザード・ショートカット・アンインストーラー付きの Setup.exe に変換します。electron-builder の設定は不要です。
- スクリプトを書かずに NSIS インストーラーをオンラインで作成するNSIS とは何か、最小限の .nsi スクリプトはどのようなものか、そしてスクリプトではなくフォームから Modern UI ウィザード、ショートカット、アンインストーラー付きの標準的な NSIS Setup.exe を手に入れる方法を解説します。