WindowsでiOSアプリを開発する方法|Mac不要でビルドと提出を回す4経路
手元にあるのがWindows機だけで、iOSアプリを出す必要が出た。この状況で最初に確かめるべきは「できるかどうか」ではなく「どの工程が止まるか」です。止まるのはビルドと署名、そしてApp Store Connectへの提出という後半の3工程だけでした。この記事では工程を切り分けたうえで、Macを買わずに後半を通す4つの経路を費用と制約で比較し、署名の進め方、実機テストの手段、Windows前提で押し切ってよい条件までを整理します。数値は2026年8月時点の一次情報にもとづきます。
まとめ:WindowsだけでiOSアプリ開発を回すための結論と4経路の使い分け
先に結論を置きます。Windows単独でApp Storeまで到達する構成は組めます。ただし、どこかで必ずmacOS上のツールチェーンを通す必要があり、それを手元に置くかクラウドへ預けるかという選択になるだけでした。
- コードの記述、依存関係の管理、Androidビルド、ユニットテストまではWindows単独で完結します。止まるのはiOS向けのビルド、署名、App Store Connectへの提出です。
- Appleの公式ヘルプが案内するアップロード手段は Xcode、Swift Playground、altool、Transporter(macOSアプリ)、App Store Connect API の5つ。Windowsから直接叩けるのは最後のAPIだけでした。
- クロスプラットフォーム構成なら、マネージドCIへビルドを預ける経路が最も手数が少ない。EASは無料枠に月15のiOSビルド、Codemagicは月500分のmacOS枠を用意しています。
- Xcode CloudはApple Developer Programに月25 compute hoursが含まれる一方、初期構成をXcodeで行う前提が残るため、Mac非保有の出発点としては噛み合いにくい構成でした。
- ネイティブ実装が厚いなら、提出と検証を握るために実機Macを1台持つ判断が結局は安上がりです。境界は後半で条件として言い切ります。
- 年会費99米ドルはどの経路でも共通の固定費で、組織名義で出す場合はD-U-N-S番号の取得が先に要ります。
WindowsでiOSアプリ開発が止まる地点を工程単位で切り分ける
「WindowsではiOS開発ができない」という説明は雑すぎます。制約がかかるのは特定の工程だけで、それ以外は普段どおりに進みました。まず地図を作ります。
コードの記述とレビューまではWindows単独で問題なく回る範囲
ソースコードの記述、Gitでの共同作業、静的解析、ユニットテスト、依存パッケージの更新。この範囲にmacOS固有の要素はありません。React NativeやFlutterのプロジェクトなら、開発中のホットリロードもAndroidエミュレータ側で確認でき、画面の作り込みと状態管理のデバッグは大半をAndroid側で潰せました。
Swiftで書く場合も、コードそのものはWindows上のエディタで書けます。ただしSwiftUIのプレビューやシミュレータ確認はXcodeの機能なので、書いた結果を目で確かめる手段が手元から消える。この差ゆえにMac非保有ならクロスプラットフォーム構成のほうが相性が良く、言語の決め方はアプリ開発の言語選定で整理しています。FlutterとReact Nativeで迷う段階ならFlutterとReact Nativeの違いと選び方が判断材料です。
XcodeがmacOS専用である事実がビルドと提出の工程を縛る構造
制約の根はひとつです。iOSアプリのバイナリを作るコンパイラ、署名ツール、シミュレータはすべてXcodeに同梱されており、XcodeはmacOS専用として配布されています。したがって、どんな経路を選んでも「macOSが動いている計算機の上でXcodeのツールチェーンを走らせる」という事実は変わらず、違いはその計算機を誰が用意するかだけになります。
提出側も同じ構造でした。Apple公式のヘルプは、アップロード手段として Xcode、Swift Playground、altool、Transporter、App Store Connect API を挙げています。altoolはxcrun経由で呼ぶコマンドなのでmacOS前提、TransporterはMac App Storeで配布されるmacOSアプリ。残るApp Store Connect APIだけが、JSON Web Tokenで認可を通せばOSを問わず叩ける経路になります。なお同ヘルプには、2026年以降はXcode 14以降でアップロードする必要があるという注記も入っています。CI設定が古いXcode版を指したままなら先に上げてください。
Macを持たずにiOSビルドを回す4経路を費用と制約で比較する
macOSの計算機を誰が用意するか、という問いへの答えは実務上4通りです。順に構成と費用、詰まりやすい点を見ます。
経路1:マネージドCIへビルドを預けるEAS BuildとCodemagic
最も手数が少ない経路です。ソースをGitへ押し出すと、サービス側のmacOSワーカーがビルドし、成果物の.ipaを返します。署名鍵の生成と保管まで肩代わりするため、証明書の扱いに慣れていない段階でも先へ進めました。
EASはExpoが提供するクラウドサービス群で、無料枠に月15のiOSビルドと15のAndroidビルドが含まれます。有料のProductionは月199ドルに従量課金が乗り、iOS向けのmacOS largeワーカーは1分あたり0.150ドル。EASはExpo製プロジェクト専用ではなくReact Nativeプロジェクト全般で使え、その位置づけはExpo(React Native)とはで整理しています。Codemagicは月500分のmacOS M2枠が無料で、超過後はMac mini M2が1分0.095ドル、M4が0.114ドル。Flutter採用時はテンプレートのぶん初期設定が短く済みました。
詰まる箇所も共通しています。YAMLで表現しきれないネイティブ改変が入ると、ローカルで再現できないぶん試行のたびに分課金が発生する。初期に設定を固め、以降は触らない運用が節約の勘所でした。
経路2:クラウドMacを時間借りしてXcodeを遠隔で操作する
MacStadiumのような専業サービスや、Amazon EC2 MacでmacOSの実体を借り、リモートデスクトップやSSHで操作する経路です。Xcodeの画面をそのまま触れるため、シミュレータ確認やInstrumentsでの計測まで持ち込めます。
EC2 Macを選ぶ場合、AWS公式ドキュメントに明記された制約を先に読んでおいてください。Macインスタンスは専有ホスト上のベアメタルとしてのみ提供され、ホストの解放までに最小24時間の割り当て期間があります。オンデマンドのみで1ホストにつき1インスタンス、起動完了までは約6〜20分。「必要な10分だけ借りる」という使い方ができないため、週に1度まとめてビルドと検証を回す運用設計が前提になります。
経路3:Xcode Cloudを使う場合に残るmacOS依存の初期設定
Apple純正のCIです。Apple Developer Programの加入に月25 compute hoursが含まれ、追加は100時間で月49.99ドル、250時間で99.99ドル、1,000時間で399.99ドルという段階になっています。純正だけあってApp Store Connectとの連携は最短で、テスト結果やビルド情報はwebダッシュボードから確認でき、ワークフローの編集と起動もwebから行えます。
ただし出発点に条件が残ります。Appleの案内は「まずXcodeでワークフローを構成する」という手順を前提にしており、最初の一歩でmacOSが要る。すでにMacが1台ある組織が自動化を進める用途では有力ですが、Mac非保有の状態から始める経路としては噛み合いません。
経路4:提出専用の実機Macを1台だけ持つ構成と維持コストの目安
チームで1台だけMacを置き、日常の開発はWindowsで進め、ビルドと提出のときだけそのMacを使う構成です。中古のMac miniなら初期費用は10万円台から。CIの分課金が発生せず、実機での検証も社内で完結します。
維持コストの実体はハードウェア代ではなく追随作業でした。iOSの新版が出るたびにXcodeとmacOSの版を上げる必要が生じ、担当を決めないまま置くと1年後には「誰も触れないMac」が残ります。
4経路をWindows単独での完結度と初期費用で並べた比較の要点
| 経路 | 初期費用 | 従量の目安 | Windows完結度 | 向く場面 |
|---|---|---|---|---|
| マネージドCI | 無料枠あり | 1分0.095ドル前後 | 高い | クロスプラットフォーム主体 |
| クラウドMac | 契約と初期設定 | 時間課金・最小24時間 | 中程度 | ネイティブ実装が厚い場合 |
| Xcode Cloud | 会費に25時間分 | 100時間で49.99ドル | 低い(初期設定にXcode) | Mac保有済みの自動化 |
| 実機Mac 1台 | 10万円台から | なし(更新の工数のみ) | 低い | 提出と検証を自社で握る |
選び方の軸は費用よりも「ネイティブ層をどれだけ触るか」です。触らないならマネージドCIで足り、触るほどクラウドMacか実機Macへ寄っていきます。中間帯は、まず無料枠を試し、設定で表現しきれない改変が出た時点で移す進め方が損を小さくしました。
署名と証明書をWindows側から扱う手順とAPIキー運用の勘所
Windowsから進めるとき最後まで残る不安が署名まわりですが、方針さえ決まれば作業は短く終わります。
証明書とプロビジョニングプロファイルをCIへ委ねる運用の全体像
iOSの署名には配布用証明書(と対になる秘密鍵)とプロビジョニングプロファイルが要ります。従来はmacOSのキーチェーンで証明書署名要求を作る手順が標準でしたが、EASやCodemagicはApple Developer Programのアカウント情報を預けると、証明書と鍵の生成、プロファイルの作成、更新までを自動で処理します。Windows側に鍵ファイルを置かずに済むため、端末紛失時の影響も小さくできました。
この方式の代償は、鍵の実体をサービス側に持たせる点です。社内規程で外部保管が許されない場合は選べず、鍵を自分で作って配る方式へ切り替えます。判断は技術ではなく規程側で決まる、と割り切ってください。
App Store Connect APIキーで提出権限を絞る設定の考え方
提出をWindowsから自動化するなら、Apple IDのパスワードではなくApp Store Connect APIキーを使います。App Store Connectの管理画面でキーを発行し、鍵ファイルと発行者ID、キーIDの3点をCIの秘密変数へ入れる構成です。認可はJSON Web Tokenで行われ、この経路だけがOSに依存しません。
権限設計では、キーに与える役割を提出に必要な範囲へ絞ります。共有アカウントに紐づけずCI専用のキーとして分けておくと、退職や委託先の切り替え時に失効させるだけで整理が終わる。鍵ファイルはリポジトリへ置かず、CI側の秘密管理へ入れてください。
Windows上でCSRと秘密鍵を自分で作る場合の手順と注意点
鍵を自社で握る方針なら、Windows上のOpenSSLで秘密鍵と証明書署名要求を作り、Apple Developerのwebサイトへアップロードして証明書を受け取ります。証明書と秘密鍵をPKCS#12形式へまとめてCIの秘密変数へ登録すれば、macOSを一度も触らずに署名の材料がそろいました。
注意点は2つ。秘密鍵を失うと同じ証明書を再発行できず、配布中のアプリの更新に支障が出ます。また配布用証明書の枚数には上限があるため、開発者ごとに作らず共有の1枚をCIで使う設計にしてください。
実機テストと社内配布をWindowsだけで完結させる手段と限界
ビルドが通っても実機で触れなければ品質は確かめられず、ここがWindows単独運用で最も薄くなります。
TestFlightを経由してWindowsから実機へ配る現実的な手順
手元のiPhoneへアプリを入れる標準的な道はTestFlightです。CIでビルドした.ipaをApp Store Connect APIでアップロードすれば、テスター側はTestFlightアプリで受け取れます。この流れにmacOSは登場せず、Windowsのブラウザとコマンドラインだけで完結しました。
制約は待ち時間です。アップロード後の処理に数分から十数分かかり、外部テスターへ配るならAppleの審査も挟まります。1日に何十回も配り直す使い方には向かないため、細かい確認はAndroid側で潰し、iOS実機での確認は区切りごとにまとめる進め方が現実的でした。
ad hoc配布とデバイス登録をコマンド操作だけで済ませる進め方
待ち時間を避けたい場合は、ad hocのプロビジョニングプロファイルで特定端末へ直接配る方式があります。Expoならeas device:createで端末を登録して内部配布向けにビルドすると、テスターはQRコード経由で入れられます。端末の事前登録が抜けると入らない、という詰まり方が定番でした。
登録できる端末数には年間の上限があり、期の途中で入れ替えると枠を消費します。検証端末を増やしすぎない、退役端末を整理する時期を決めておく、という運用設計を最初に置いてください。
Windows単独では埋めきれない検証の穴と代替手段の当て方
正直に書くと、埋めきれない穴は残ります。iOSシミュレータはmacOS専用なので、Windowsからは画面サイズ違いの一括確認ができません。ネイティブ層のデバッグやInstrumentsでの計測も同様です。
代替の当て方は2つ。ひとつはクラウド実機サービスで、ブラウザ越しに複数機種を触れます。もうひとつはクラッシュ収集サービスを先に入れ、シンボル情報をCIから自動送信しておく構成です。後者は解析をwebで完結でき、Mac非保有の体制で効きました。それでも粘る局面では、経路2のクラウドMacを24時間だけ借りて潰す併用が現実解です。
ビルドの自動化をCI側へ寄せる構成とWindows環境で踏む落とし穴
ここまでの経路はいずれもCIを前提にします。自動化の設計で踏みやすい箇所を先に潰します。
GitHub Actionsのランナー課金がmacOSで跳ねる理由と対処
既存のCIがGitHub Actionsなら、macOSランナーを足すだけでiOSビルドを回せます。ただし単価が違います。GitHubの課金ドキュメントでは、macOSの3コアまたは4コア(M1またはIntel)が1分0.062ドル、Linux 2コアが0.006ドルで、約10倍の開きがありました。Linuxの感覚で並列ジョブを組むと請求が跳ねます。
対処は3点です。iOSビルドのジョブだけをmacOSランナーへ割り当ててテストや静的解析はLinux側へ寄せる。依存パッケージとビルド中間物のキャッシュを効かせる。プルリクエストごとの自動ビルドを止め、リリース候補のタグを打ったときだけ走らせる。設定の具体はGitHub Actionsでfastlaneを動かすiOSリリース自動化の手順にまとめてあります。
fastlaneをCIで動かす構成が実務で詰まりやすい箇所と対処
fastlaneはiOSのビルドと提出をまとめて扱えるツールですが、Ruby製でmacOS前提の処理を多く含みます。Windowsのローカルでは噛み合わないため、fastlaneはCIのmacOSランナー上で走らせ、Windows側はコードとYAMLだけを触る分担にしてください。
詰まり方は決まっています。ローカルのキーチェーンに依存した処理がCIで再現しない、証明書の期限切れが深夜のビルドで初めて露見する、Xcodeの版差でビルド設定の解釈が変わる。対処は、証明書の期限をカレンダーへ登録し、CIのXcode版を明示的に固定し、月に1度は何も変更していない状態でビルドを流すこと。この定期実行が保険になりました。
Windows前提で進めてよい条件と実機Macを買うべき条件の分岐
ここまでの内容を判断の形に落とします。条件を満たすかで決めてください。
Windows単独のまま進めてよいプロジェクトの条件を言い切る
次の4条件をすべて満たすなら、Macを買わずに進めて構いません。実装がFlutterかReact Nativeで、ネイティブ層の改変が設定プラグインの範囲に収まること。iOS実機での確認頻度が週に数回までで、TestFlightの処理待ちを許容できること。署名鍵を外部サービスへ預けることが規程上許されること。バックグラウンドでの常時処理やカメラの細かい制御といったiOS固有の低レベル機能が要件に入っていないこと。
この条件下なら、初期費用はApple Developer Programの99米ドルとCIの無料枠だけで足ります。方式選定の全体像はクロスプラットフォームアプリ開発とは、発注側の費用感はiOSアプリ開発とはが社内説明の材料になります。
実機Macの調達を先に決めるべき要件と見極めに使う三つの基準
逆に、次のいずれかに当てはまるなら、Macを1台調達したほうが総コストは下がります。
- SwiftUIやUIKitで作り込むネイティブ実装が中心で、画面の見た目を実機で詰める作業が日常的に発生する。
- ビルド頻度が高く、CIの分課金が月に数万円規模へ届く見込みがある。1分0.095ドルでも、1回15分のビルドを1日5回回せば月あたりの分数はすぐに積み上がる。
- 鍵の外部保管が規程で禁止されており、かつクラッシュ解析やプロファイリングを自社で完結させる必要がある。
迷ったときの目安として、iOSの比重が開発工数の3割を超えるかで区切ると判断が速い。超えるならMacは投資として回収でき、下回るならクラウドへ預けたほうが身軽でした。
外注で埋める場合に相手へ確認しておくビルド環境と署名まわりの要点
社内にmacOSの環境も担当者もいない状態を、外注で埋める選択もあります。確認すべきは価格よりも引き継ぎの形でした。証明書と鍵の名義、App Store Connectのアカウントを自社で保持できるか、CIの設定ファイルを成果物として受け取れるか。この3点が曖昧なまま進むと、契約終了時にアプリを更新できなくなります。
一創ではiOSアプリ開発として、ビルド環境と署名の設計から実装、リリース後の保守までを請け負っています。Windows主体の社内体制を前提にしたCI構成の設計や、鍵と提出権限を自社側に残す形での引き継ぎ設計も含めて相談いただけます。外注そのものの進め方と費用感はiPhoneアプリ開発の外注にまとめました。
よくある質問
WindowsだけでApp Storeにアプリを公開できますか?
公開できます。ビルドをマネージドCIのmacOSワーカーへ預け、App Store Connect APIでアップロードすれば、手元にmacOSがない状態でも提出まで到達します。ただしApple Developer Programへの加入(年会費99米ドル、組織はD-U-N-S番号が必要)は経路を問わず必須でした。
WindowsにXcodeをインストールする方法はありませんか?
ありません。XcodeはmacOS専用として配布されており、Windows版もLinux版も存在しない状態が続いています。仮想マシンへmacOSを入れる方法が話題に上ることもありますが、Appleのソフトウェア使用許諾契約はApple製ハードウェア上での実行を前提としているため、業務では採れません。
iOSシミュレータの代わりにWindowsで使えるものはありますか?
同等品はありません。実務では、画面レイアウトや状態遷移の確認をAndroidエミュレータで先に潰し、iOS固有の見た目の確認だけを実機かクラウド実機サービスへ回します。どうしてもシミュレータが要る局面では、クラウドMacを短期間借りて確認する形が現実的でした。
クラウドMacとマネージドCIはどちらから試すべきですか?
まずマネージドCIの無料枠から試してください。EASは月15のiOSビルド、Codemagicは月500分のmacOS枠が無料で、設定が通るかを費用なしで確かめられます。表現しきれないネイティブ改変が出た時点で、クラウドMacか実機Macへ移す判断に切り替えます。
Windowsで作ったアプリの審査で不利になることはありますか?
ありません。審査はアップロードされたバイナリと申請内容に対して行われ、どのOSで開発したかは判定材料になりません。ただし権限説明やプライバシー関連の申告漏れは差し戻しの定番なので、提出前のチェックはCIの手順へ組み込んでください。
関連記事
- iOSアプリ開発とは?特徴・Swiftでの作り方・費用と外注判断を発注者視点で解説:総論と費用感の整理。
- Expo(React Native)とは?Expo Go・開発ビルド・EASの役割と採用判断を実装目線で解説:EASの構成と採用判断。
- FlutterとReact Nativeの違いと選び方|2026年の判断基準:方式の選定基準。
- アプリ開発の言語選定|Swift・Kotlin・Dartの分岐条件を実装視点で解説:言語の決め方。
- GitHub Actionsでfastlaneを動かすiOSリリース自動化の手順:提出自動化の具体例。
- iPhoneアプリ開発の外注とは:外注時の判断材料。
- クロスプラットフォームアプリ開発とは:方式選定の全体像。