ガイド

Windowsで作業しながらCapacitorのiOSアプリをビルドする

Capacitorは、Webアプリをネイティブの外枠で包みます。Windowsでは、WebアプリとAndroidアプリをビルドできます。iOSアプリにはXcodeが必要で、XcodeはmacOSでしか動きません。当社は2026年10月19日に、Capacitor 8.5.3で、その境目がどこにあるかを試しました。境目は、多くの人が思うよりあとにあります。

Windowsでできること

GitHubのWindows Server 2025のrunnerで、Node 22を使って次の手順を実行しました。CapacitorのドキュメントはNode 22以降を求めています。すべての手順が通りました。

npm init @capacitor/app@latest capdemo -- --name CapDemo --app-id com.example.capdemo
cd capdemo
npm install
npm run build
npm i @capacitor/android @capacitor/ios
npx cap add android
npx cap add ios
npx cap sync ios

JDK 21を使ったAndroidのデバッグビルドも、そこで動きました。キャッシュのないrunnerで、gradlew.bat assembleDebugに6分33秒かかりました。8.2 MBのapp-debug.apkができました。

意外だったのはnpx cap add iosです。Windowsで1秒もかからずに終わり、完全なXcodeプロジェクトを書き出しました。出力は次のとおりです。

√ Adding native Xcode project in ios in 47.04ms
[info] All Capacitor plugins have a Package.swift file and will be included in Package.swift
[info] Writing Package.swift
[success] ios platform added!

CocoaPodsではなくSwift Package Manager

Capacitor 8のプロジェクトは、標準でSwift Package Managerを使います。ドキュメントはこれを勧めていて、Capacitor 8より前はCocoaPodsが標準だったと書いています。当社の新しいプロジェクトにはPodfileがありませんでした。あったのはios/App/App.xcodeprojと、node_modules内のプラグインを指すCapApp-SPMパッケージです。

そのため、今はiOSの手順がWindowsで動きます。実行するpod installがないからです。プロジェクトがまだCocoaPodsを使っているなら、pod installにはmacOSが必要です。CocoaPodsのプロジェクトはWindowsで試していません。SPMに移るには、ドキュメントにあるnpx cap spm-migration-assistantを使います。

今もMacが必要なもの

  • xcodebuildとXcode。Capacitor 8にはXcode 26.0以降が必要で、XcodeはmacOSでしか動きません。
  • npx cap open iosとnpx cap run ios。どちらもプロジェクトをXcodeかシミュレータに渡します。
  • iOSシミュレータ。Xcodeに含まれています。
  • 署名、アーカイブ、アップロード。この部分についてはMacなしでの公開をご覧ください。

試したWindowsからMacへの受け渡し

Windowsのプロジェクトをgitにコミットし、Macのrunnerに移しました。iosフォルダの.gitignoreは、コピーされたWebのファイルと、生成された設定を除外しています。そのため、Xcodeを動かす前に、Macでそれらを作り直します。

npm ci
npm run build
npx cap sync ios
xcodebuild -project ios/App/App.xcodeproj -scheme App \
  -configuration Debug -sdk iphonesimulator \
  -destination 'generic/platform=iOS Simulator' \
  -derivedDataPath build build

Xcode 26.6で、ビルドは36秒でした。初回の実行では、XcodeがGitHubからcapacitor-swift-pm 8.5.3を取得しました。そのあと、iPhone 17 Proのシミュレータにアプリをインストールして開きました。Capacitorのようこそ画面が表示されました。

xcrun simctl install booted build/Build/Products/Debug-iphonesimulator/App.app
xcrun simctl launch booted com.example.capdemo

CapacitorのiOSのページには、今もApp.xcworkspaceを開くように書かれています。SPMのプロジェクトにはそれがないので、代わりにios/App/App.xcodeprojを開いてください。

署名をオフにしたデバイス向けのビルドも、17秒で通りました。CODE_SIGNING_ALLOWED=NOを加え、-sdk iphoneosを使います。リリースするには、Xcodeでプロジェクトを開き、Signing and Capabilitiesでチームを選んで、Product、Archiveの順に選びます。

Ionic Appflowはどうか

AppflowはIonicのクラウドでiOSアプリをビルドします。そのページにも今もそう書かれています。Ionicは2025年2月11日に、Appflowの新規販売をやめました。今のユーザーは2027年12月31日まで使えます。まだ顧客でないなら、別の方法を考えてください。

1つの工程のためにMacを借りる

MacRunの1日パスは、専用のM6 Mac miniが$15で、1週間なら$59です。Xcode 27.1とiOS 27.1のシミュレータが入っています。Nodeは入っていません。管理者権限とHomebrewが使えるので、自分が使うバージョンのNodeをインストールします。WindowsからSSHと画面共有で接続します。パスが終わるとMacのデータは消去されます。リモートの画面がどんな感じかは、WindowsでiOSシミュレータのガイドをご覧ください。

この用途でMacを借りるべきでない人

ときどきビルドが必要なだけなら、ホスト型のmacOS runnerで足ります。上のコマンドは、自分のMacなしでGitHub Actionsで動きました。CodemagicはIonicへの対応をうたっていて、個人にmacOS M2の時間を毎月500分、無料で提供しています。これは2026年10月19日時点の料金ページによるものです。毎週リリースするなら、中古のMacのほうが長い目で見て安いかもしれません。署名のトラブルやネイティブプラグインのバグなど、Xcodeを開く必要があるときは、レンタルのMacが向いています。

よくある質問

npx cap add iosはWindowsで実行できますか?

+

Capacitor 8とSwift Package Managerならできます。2026年10月の当社のテストでは、Windowsで1秒もかからずにXcodeプロジェクトが書き出されました。npx cap sync iosも動きました。アプリのビルドには、やはりMacが必要です。

CapacitorはiOSでCocoaPodsとSwift Package Managerのどちらを使いますか?

+

新しいCapacitor 8のプロジェクトは、Swift Package Managerを使います。当社の新しいプロジェクトにはPackage.swiftがあり、Podfileはありませんでした。ドキュメントによると、Capacitor 8より前はCocoaPodsが標準で、今は任意です。

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

+

アプリそのものはできません。xcodebuildの工程、シミュレータ、署名には、macOSのXcodeが必要です。準備はすべてWindowsで行い、gitにpushして、MacかmacOSのCI runnerでビルドできます。

Ionic Appflowは今も使えますか?

+

Ionicは2025年2月11日に、Appflowの新規販売をやめました。Ionicの発表によると、既存のAppflowのユーザーは2027年12月31日まで使えます。

AndroidアプリはWindowsでビルドできますか?

+

できます。当社のテストでは、JDK 21を使って、Windowsでnpx cap add androidとgradlew.bat assembleDebugが動きました。最初のビルドは6分33秒で、8.2 MBのデバッグ用APKができました。

CapacitorのiOSビルドには、どのくらい時間がかかりますか?

+

GitHubのmacOS runnerで、Xcode 26.6を使い、当社のスターターアプリはシミュレータ向けに24秒から36秒でビルドできました。長いほうには、Swiftパッケージの取得が含まれます。大きなアプリでは、もっと時間がかかります。

関連ガイド