WindowsからUnityのゲームをiOS向けにビルドする
WindowsのUnityでもiOSをターゲットにできますが、途中で止まります。Unityが書き出すのはXcodeプロジェクトで、それをアプリにできるのはMacのXcodeだけです。このガイドでは、プロジェクトをMacに移してアーカイブする方法を紹介します。Macをまったく使わない、Unityのクラウドビルドも取り上げます。
UnityがWindowsでできることと、Macが必要なこと
UnityのiOSのセットアップページには、XcodeはmacOSでしか使えないと書かれています。そのため、macOSが動かないマシンでは、アプリをローカルでビルドできません。UnityはiOSを2段階でビルドします。UnityがXcodeプロジェクトを書き出し、Xcodeがそこからアプリをビルドします。
Windowsでできるのは最初の段階だけです。Run in Xcodeのオプションは、UnityがmacOSで動いているときにしか表示されません。2つ目の段階では、重い処理が行われます。Unityのドキュメントによると、そこでXcodeがIL2CPPを動かし、スクリプトから生成したC++をlibGameAssembly.aにコンパイルします。
手順1:WindowsでXcodeプロジェクトを書き出す
- Unity Hubで、エディタにiOS Build Supportのモジュールを追加します。
- File、Build Profilesの順に開き、iOSをアクティブなプラットフォームにします。
- Buildをクリックし、空のフォルダを選びます。たとえばBuilds/iOSです。
フォルダにはUnity-iPhone.xcodeprojが入っています。Unityのドキュメントによると、中には2つのターゲットがあります。Unity-iPhoneは小さなランチャーで、UnityFrameworkにはランタイムと自分のコードが入っています。DataとLibrariesのフォルダは触らないでください。Unityがビルドのたびに更新します。
手順2:Macにコピーする
WindowsにはWindows 10のビルド17063からtarが入っています。scpのクライアントは、OpenSSH for Windowsに含まれています。これはビルド1809からのオプション機能です。scpがない場合は、オプション機能からOpenSSHクライアントを追加します。フォルダをまとめ、Tailscale経由でコピーし、Macで展開します。
cd Builds tar -czf ios-build.tgz iOS scp ios-build.tgz you@your-mac:~/ ssh you@your-mac "mkdir -p ~/MyGame && tar -xzf ~/ios-build.tgz -C ~/MyGame"
LinuxやWSLからなら、rsyncは前回のコピーから変わった部分だけを送ります。大きなゲームを少し変えたあとに便利です。
rsync -az --delete Builds/iOS/ you@your-mac:~/MyGame/iOS/
gitも使えますが、書き出したものは丸ごとだと大きく、ビルドのたびに変わります。多くのチームは、書き出したものはコピーで送り、gitはUnityのプロジェクトに使っています。
手順3:Macでアーカイブする
Macの画面から、.xcodeprojをXcodeで開くことができます。Unity-iPhoneのスキームとAny iOS Deviceを選び、Product、Archiveの順に選びます。SSHのターミナルのまま作業することもできます。まず、ターゲットとスキームを一覧にします。
cd ~/MyGame/iOS xcodebuild -list -project Unity-iPhone.xcodeproj
次に、ランチャーのスキームでアーカイブします。CODE_SIGNING_ALLOWED=NOを付けると、証明書なしでテスト用のアーカイブができます。これでプロジェクトがコンパイルできることを確かめられます。
xcodebuild -project Unity-iPhone.xcodeproj -scheme Unity-iPhone \ -configuration Release -destination 'generic/platform=iOS' \ -archivePath build/Game.xcarchive archive \ CODE_SIGNING_ALLOWED=NO
リリースするときは、このフラグを外し、自分のチームで署名します。そのあと、app-store-connectの方法を指定したExportOptions.plistと-exportArchiveで書き出します。署名とアップロードのコマンドは、すべて公開ガイドにあります。
iOSのSDKのために、GoogleのExternal Dependency Managerを使うゲームもあります。これはPodfileを書き出し、ビルドのあとでCocoaPodsを実行します。書き出したものにPodfileがあれば、Macでpod installを実行します。そのあと、.xcodeprojではなく.xcworkspaceをビルドします。CocoaPodsは入っていないので、brew install cocoapodsで追加します。
試したことと、試していないこと
UnityはライセンスなしではCIで動かないので、本物のUnityのゲームは書き出していません。代わりに、同じ形の代用プロジェクトでMacの部分を試しました。ランチャーのアプリのターゲットと、フレームワークのターゲットがあるプロジェクトです。2026年10月19日に、GitHubのmacos-26 runnerがXcode 26.6でそれをアーカイブしました。次に、WindowsのrunnerがWindowsのtarでそれをまとめました。2台目のMacがそのコピーを展開し、もう一度アーカイブしました。
Xcode 26.6
Build version 17F113
Schemes:
Game-iPhone
GameFramework
** BUILD SUCCEEDED **
** ARCHIVE SUCCEEDED **
scp.exe C:\Windows\System32\OpenSSH\scp.exe
OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2
** ARCHIVE SUCCEEDED **本物のゲームでは、もっとずっと時間がかかります。MacがIL2CPPのコードをすべてコンパイルするからです。.shファイルでPermission deniedと出てビルドが止まったら、コピーで実行権限が失われています。そのファイルにchmod +xを実行して、もう一度ビルドしてください。
クラウドという選択肢:Unity Build Automation
Unityのドキュメントは、Macを持たない人にBuild Automationを勧めています。Unityのサーバーでゲームをビルドするサービスです。2026年3月1日から、Unityには毎月100分のMacのビルド時間が含まれます。UnityのDevOpsの料金に関する記事によると、それを超えると、標準のMacマシンはビルド1分あたり$0.07です。
この用途でMacを借りるべきでない人
- ビルドが月に数回の人。Unity Build Automationの無料の100分で足りるかもしれません。Macはまったく要りません。
- コミットのたびにビルドする人。手でフォルダをコピーするより、CIのサービスかセルフホストのmacOS runnerのほうが向いています。
- 毎日iOSの作業をする人。毎日Macを使うなら、買ったほうが1年で見て安いかもしれません。
レンタルのMacが向いている場合
Xcodeを開かないと直せない問題もあります。署名のエラー、プラグインのリンクエラー、シミュレータでのクラッシュは、手で直すほうが簡単です。MacRunの1日パスは、専用のM6 Mac miniが$15で、1週間は$59です。標準はXcode 27.1で、Xcode 26.6もインストール済みです。WindowsからTailscaleと好きなVNCビューアで接続します。
パスが終わるとMacのデータは消去されます。その前に.ipaをダウンロードし、変更をpushしてください。実機のiPhoneには、TestFlightでビルドを送ります。リモートのMacからは、PCにつないだスマートフォンは見えないからです。Unityとほかのエンジンの比較は、WindowsでiOSアプリをビルドするガイドをご覧ください。
よくある質問
UnityはWindowsでiOSアプリをビルドできますか?
+
途中までです。WindowsのUnityはXcodeプロジェクトを書き出します。Unityのドキュメントによると、XcodeはmacOSでしか使えないので、アプリそのものはMacかUnity Build Automationでビルドします。
UnityのXcodeプロジェクトをコマンドラインでビルドするには?
+
Macでxcodebuild -listを実行して、スキームを確認します。次に、Unity-iPhoneのスキームと汎用のiOSのdestinationで、xcodebuild archiveを実行します。.ipaを得るには、-exportArchiveでアーカイブを書き出します。
UnityにはどのバージョンのXcodeが必要ですか?
+
Unity 6.6のドキュメントは、Xcode 16以降を勧めていて、iOS 15以上に対応しています。MacRunのMacは、標準がXcode 27.1で、Xcode 26.6もインストール済みです。
iOS向けのUnity Build Automationはいくらですか?
+
2026年3月1日から有効なUnityのDevOpsの料金に関する記事によると、毎月100分のMacのビルド時間が含まれます。それを超えると、標準のMacマシンはビルド1分あたり$0.07です。
UnityのiOSビルドをWindowsからMacにコピーするには?
+
書き出したフォルダをtarでまとめます。WindowsにはWindows 10のビルド17063からtarが入っています。scpでコピーし、Macで展開します。LinuxやWSLからなら、rsyncが変わった部分だけを送ります。
リモートのMacから、UnityのiOSビルドをiPhoneでテストできますか?
+
USBではできません。リモートのMacからは、PCにつないだスマートフォンは見えないからです。ビルドをTestFlightにアップロードし、そこからスマートフォンにインストールします。