ガイド

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にアップロードし、そこからスマートフォンにインストールします。

関連ガイド