ガイド

WindowsからiOSアプリをビルドする方法をフレームワーク別に

Flutter、React Native、Unity、Godot、MAUIのアプリは、Windowsで書けます。Macが必要なのはiOSのビルドだけです。どのツールも、最後の工程はXcodeに任せます。このページでは、フレームワークごとにMacで実行する作業をまとめます。できたものをアップロードする方法も紹介します。

フレームワーク別、Macが必要な作業

各プロジェクトの公式ドキュメントの内容です。2026年10月18日に確認しました。

  • Flutter:iOSのリリースガイドには、Xcodeが必要で、macOSが動くデバイスを使う必要があると書かれています。DartのコードとAndroidのビルドは、WindowsやLinuxのままでかまいません。
  • React Native:App Storeのガイドでは、リリースビルドをXcodeで行います。JavaScriptの作業とJestのテストは、どのOSでも動きます。
  • Expo:EAS Buildは、ExpoのクラウドにあるmacOSマシンでiOSのビルドを行います。自分のMacは一度も要らないかもしれません。
  • Unity:エディタがXcodeプロジェクトを書き出し、Xcodeがそこからアプリをビルドします。Unityによると、iOSのローカルビルドにはmacOSが必要です。
  • Godot:ドキュメントには、iOS向けのエクスポートはXcodeが入ったmacOSのコンピュータから行う必要があると書かれています。つまり、エクスポートの工程からMacで行います。
  • .NET MAUI:WindowsのVisual StudioがSSHでMacに接続し、Macがアプリをコンパイルして署名します。

一般的な内容は、以前の2つのガイドで扱っています。APIキー、署名、TestFlightについてはMacなしでの公開をご覧ください。リモートの画面とキーボードについてはWindowsでXcodeをご覧ください。このページではコマンドに絞って説明します。

始める前に:アカウントと署名

  • 有料のApple Developer Programのメンバーシップが必要です。年間99 USDです。
  • App Store Connectでアプリのレコードを作ります。これはどのブラウザからでもできます。
  • MacのXcodeに自分のApple Accountを追加し、Signing and Capabilitiesでチームを選びます。
  • Automatically manage signingはオンのままにします。証明書とプロファイルはXcodeが作ってくれます。

Flutter:flutter build ipa

MacにFlutterをインストールし、そこにリポジトリをクローンします。そのあと、プロジェクトのフォルダで次のコマンドを1つ実行します。

flutter build ipa

Flutterのドキュメントによると、これでbuild/ios/archiveに.xcarchiveが、build/ios/ipaに.ipaが書き出されます。バージョンは--build-nameと--build-numberで指定します。アップロードの方法は3つ紹介されています。Mac上でAppleのTransporterアプリに.ipaをドラッグする方法。Xcodeでアーカイブを開いてDistribute Appをクリックする方法。そして、App Store Connect APIキーを使ってターミナルからアップロードする方法です。

xcrun altool --upload-app --type ios -f build/ios/ipa/*.ipa \
  --apiKey your_api_key --apiIssuer your_issuer_id

React Native:Xcodeでアーカイブ

React Nativeのガイドでは、リリースをXcodeのウインドウで行います。先にpodをインストールしてから、ワークスペースを開きます。

cd ios
bundle exec pod install
open MyApp.xcworkspace
  • Product、Scheme、Edit Schemeで、RunのBuild ConfigurationをReleaseにします。
  • デバイスをAny iOS Device (arm64)にして、Product、Archiveの順に選びます。
  • アーカイブのウインドウで、Distribute App、App Store Connect、Uploadの順にクリックします。

ビルドはApp Store ConnectのTestFlightに表示されます。ターミナルからリリースしたい場合は、xcodebuild archiveと-exportArchiveを使います。フラグは公開ガイドにあります。WindowsとLinuxでの作業の流れ全体は、MacなしでのReact Native iOSビルドをご覧ください。

Expoなら、ビルドにMacは要りません。Windowsから次のコマンドを実行すると、ExpoのmacOSランナーでビルドされます。

eas build --platform ios

シミュレータやXcodeのデバッガを使いたいときは、やはりMacが必要です。

Unity:Windowsでビルドし、Macでアーカイブ

Build SettingsでiOSを選んでBuildをクリックすると、UnityがXcodeプロジェクトの入ったフォルダを書き出します。Run in XcodeのオプションはmacOSでしか表示されないので、Windowsではここまでです。SSHでそのフォルダをMacにコピーします。

scp -r Builds/iOS you@your-mac:~/MyGame-iOS

Macで、そのフォルダの中の.xcodeprojを開きます。Unity-iPhoneのスキームを選びます。これはUnityFrameworkを動かすランチャーのターゲットです。デバイスをAny iOS Deviceにして、Product、Archiveの順に選びます。あとはほかのiOSアプリと同じく、Organizerウインドウから配布します。

大きなゲームはフォルダも大きくなるので、コピーの時間はアップロード速度しだいです。UnityにはBuild Automationもあり、Unityのクラウドでゲームをビルドできます。

Godot:Macでエクスポート

GodotのiOSエクスポートはmacOSでしか動きません。MacにGodotとエクスポートテンプレートをインストールし、そこでプロジェクトを開きます。

  • Project、Exportの順に開き、Addをクリックして、iOSを選びます。
  • App Store Team IDとBundle Identifierを入力します。エクスポーターはどちらも必須です。
  • Team IDは10文字のコードです。Xcodeに表示される名前ではありません。
  • Export Projectをクリックし、ファイルの保存先に空のフォルダを選びます。
  • 書き出された.xcodeprojを開き、Product、Archiveの順に選びます。

.NET MAUI:Visual StudioをMacとペアリング

MicrosoftのPair to Macは、SSHでMacのビルドを実行します。そのため、リモートログインをオンにしておく必要があります。Xcodeは手動でインストールし、一度起動しておきます。MicrosoftはMonoも求めていて、Appleシリコンの場合はRosettaも必要です。Visual Studioで、Tools、iOS、Pair to Macを開きます。Macが一覧にない場合は、アドレスを指定して追加します。

Windowsのコマンドラインから公開することもできます。これはMicrosoftのVisual Studio 2026向けの例から、パスワードを除いたものです。

dotnet publish -f net8.0-ios -c Release -p:ArchiveOnBuild=true \
  -p:RuntimeIdentifier=ios-arm64 \
  -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" \
  -p:CodesignProvision="MyMauiApp" \
  -p:ServerAddress={macOS build host IP address} \
  -p:ServerUser={macOS username} -p:TcpPort=58181 \
  -p:_DotNetRootRemoteDirectory=/Users/{macOS username}/Library/Caches/maui/PairToMac/SDKs/dotnet/

net8.0-iosは、自分のターゲットフレームワークに変えてください。パスワードのフラグがなければ、Pair to Macは最初の接続で保存したSSHキーを使います。署名済みの.ipaは、PCのbin\Releaseの下にできます。アップロードには、MicrosoftはTransporterを勧めています。

アップロード:Appleが現在挙げている方法

Appleのアップロードのページには、Xcode、Swift Playground、altool、Transporterの4つのツールが載っています。Transporterとaltoolはすべてのターゲットタイプに対応し、altoolの終了日は書かれていません。TransporterはmacOSのアプリですが、コマンドライン版はWindowsでも動きます。ただし制限があります。その制限は公開ガイドで説明しています。

クラウドビルドか、レンタルのMacか

まず、何が必要かを考えます。.ipaがたまに要るだけなら、クラウドビルドで足りるかもしれません。Codemagic、EAS Build、GitHub ActionsのmacOSランナーは、どれもiOSアプリをビルドできます。設定の一例はGitHub Actionsのガイドで紹介しています。

レンタルのMacが向いている作業もあります。シミュレータで画面を確認したいときや、クラッシュをXcodeのデバッガで調べたいときです。署名のエラーは、Xcodeのウインドウで直すほうが簡単です。リリースの各工程を自分の目で見ながら進めたいチームもあります。

リリース日だけ$15のMacで

年に数回しかリリースしないアプリも多くあります。それなら、MacRunの1日パスは$15で、支払いは1回だけ、自動更新はありません。1週間なら$59で、審査のあとに修正する時間も取れます。数週間ごとにリリースするなら、月額プランは$139からです。

  • 共有ではない専用のMac miniで、管理者権限があります。
  • Xcode 27.1がデフォルトで、古いプロジェクト用にXcode 26.6も入っています。
  • iPhone Duoを含むiOS 27.1のシミュレータがインストール済みです。
  • Macは5分以内に使えるようになります。
  • SSHと画面共有は、プライベートなTailscaleネットワーク経由で、WindowsやLinuxから使えます。

パスが終わるとMacのデータは消去されます。その前にコードをプッシュし、署名のファイルをコピーしておいてください。

よくある質問

WindowsでiOSアプリをビルドできますか?

+

Windowsで書くことはできます。iOSのビルドにはXcodeが必要で、XcodeはmacOSでしか動きません。その工程には、レンタルのMac、CIのランナー、クラウドのビルドサービスのどれかを使います。

FlutterでWindowsからiOSをビルドできますか?

+

できません。FlutterのiOSリリースガイドには、この工程ではmacOSが動くデバイスを使う必要があると書かれています。Macでflutter build ipaを実行し、Transporter、altool、Xcodeのどれかで.ipaをアップロードします。

MacなしでReact NativeのiOSアプリをビルドできますか?

+

Expoならできます。EAS Buildが、ExpoのクラウドにあるmacOSマシンでiOSのビルドを行うからです。Expoを使わない場合は、XcodeでアプリをアーカイブするためにMacが必要です。

UnityでWindowsからiOS向けにビルドできますか?

+

UnityはXcodeプロジェクトを書き出します。そのあとXcodeがアプリをビルドしますが、XcodeはmacOSでしか動きません。プロジェクトをMacにコピーしてそこでアーカイブするか、Unity Build Automationを使います。

WindowsからiOSアプリをアップロードするには?

+

AppleのTransporterのコマンドラインツールはWindowsで動きます。ただし、Xcodeがビルドと一緒に書き出すファイルが必要なので、ビルド自体はMacで行います。

関連ガイド