ほとんどのCapacitorのドキュメントはMacを前提としています。Windowsで開発する場合、WebレイヤーとAndroidは同様に動作しますが、PowerShell、パスの長さ、エミュレータに関するWindows特有の注意点があります。iOSはWindowsではコンパイルできない唯一の要素ですが、クラウドでのmacOSビルドで解決できます。
This guide is the complete Windows 11 setup, from a blank machine to an Android build on a device and an iOS build in TestFlight through Capgo のビルド.
Windowsでできること、できないこと
| タスク | Windows |
|---|---|
| Web開発、Vite、フレームワークツール | はい |
cap add android, cap sync, Gradleビルド |
はい |
| Androidエミュレータ | Hyper-VまたはWHPXを使用すれば可能 |
| USB接続の実機Androidデバイス | はい |
| Chrome DevTools によるリモートデバッグ | はい |
cap add ios, cap sync ios (生成してコピー) |
はい(CocoaPods の警告あり) |
| iOS のコンパイル、署名、アーカイブ | いいえ、macOS が必要です。Capgo Build を使用してください |
| iOS シミュレーター | いいえ |
| iOS WebView 用 Safari Web Inspector | いいえ |
1) Node または Bun をインストール
使用する winget PowerShellで実行:
winget install OpenJS.NodeJS.LTS
# Or Bun
winget install Oven-sh.Bun
新しいターミナルを開き、以下を確認してください:
node --version
bun --version
PowerShellの実行ポリシーを修正する
bunx cap, npx cap ほとんどの CLI shimは .ps1 スクリプトです。Windowsの初期状態ではこれらが running scripts is disabled on this system. 一度だけローカルスクリプトを許可します:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
2) JDK 21をインストールする
Capacitor 7および8にはJDK 21が必要です。Android Studioには独自のJBRが同梱されていますが、ターミナルからGradleを実行する際の予期せぬエラーを防ぐには、システムにJDKをインストールしておくのがベストです。
winget install Microsoft.OpenJDK.21
設定 JAVA_HOME ユーザー向けに設定します。PowerShellで実行:
[Environment]::SetEnvironmentVariable("JAVA_HOME", "C:\Program Files\Microsoft\jdk-21.0.8.9-hotspot", "User")
インストールしたバージョンに合わせてフォルダパスを調整してください。完了後、ターミナルを再起動してください。
3) Android Studioと SDK をインストールする
winget install Google.AndroidStudio
Android Studioを起動し、セットアップウィザードに従って SDK をインストールしてください。 C:\Users\<you>\AppData\Local\Android\Sdk次に、Gradleと Capacitor が参照する環境変数を設定します:
$sdk = "$env:LOCALAPPDATA\Android\Sdk"
[Environment]::SetEnvironmentVariable("ANDROID_HOME", $sdk, "User")
$path = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$path;$sdk\platform-tools;$sdk\emulator", "User")
Android Studioの SDK Managerを開き、Capacitor のバージョンに合ったプラットフォームをインストールします:Capacitor 8にはAPI 36、Capacitor 7にはAPI 35。
4) エミュレータを高速化する
エミュレータにはハードウェア仮想化が必要です。Windows 11では、Windows Hypervisor Platformを使用します。以下を有効にしてください:
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform
再起動します。Android StudioのDevice Managerで依然としてアクセラレーションに関する警告が出る場合は、BIOSまたはUEFIで仮想化が有効になっているか、また古いCPUでコア分離(メモリ整合性)がブロックしていないか確認してください。
Device Manager、またはターミナルからデバイスを作成します:
sdkmanager "system-images;android-36;google_apis;x86_64"
avdmanager create avd -n pixel8 -k "system-images;android-36;google_apis;x86_64" -d pixel_8
emulator -avd pixel8
5) WindowsでのUSBデバッグ
端末で「開発者向けオプション」と「USBデバッグ」を有効にします。最近の端末はほとんどドライバー不要ですが、 adb devices が空のままの場合は、SDK Manager(SDK Toolsタブ)からGoogleのUSBドライバーを、またはSamsungデバイス用のベンダードライバーをインストールしてください。
adb devices
初回接続時は、端末に表示される指紋認証のプロンプトを許可してください。
6) Windows特有のプロジェクト修正
Windowsでの開発時間を大幅に短縮する3つの設定:
長いパスの有効化。 Gradleと node_modules 260文字の制限を超えることがあります。以下のコマンドで有効化してください:
git config --global core.longpaths true
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" -Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
2番目のコマンドは管理者権限のPowerShellで実行してください。
Defenderの除外設定。 リアルタイムスキャンが node_modules、GradleキャッシュやAndroidの SDK にかかると、ビルドが著しく遅くなります。Windows セキュリティ、または管理者権限のPowerShellから以下のフォルダを除外してください:
Add-MpPreference -ExclusionPath "$env:USERPROFILE\.gradle"
Add-MpPreference -ExclusionPath "$env:LOCALAPPDATA\Android\Sdk"
Add-MpPreference -ExclusionPath "C:\dev"
プロジェクトは、OneDrive同期下のDocumentsではなく、 C:\dev\my-app次のような短いパスに配置してください:
改行コード。 Gradleの gradlew シェルスクリプトはLF改行コードを維持する必要があります。そうしないとLinuxのCIが壊れます。まず、 .gitattributes:
*.sh text eol=lf
gradlew text eol=lf
7) Capacitor プロジェクトの作成
bun create vite@latest my-app
cd my-app
bun install
bun add @capacitor/core @capacitor/android @capacitor/ios
bun add -d @capacitor/cli
bunx cap init
bun run build
bunx cap add android
bunx cap add ios
cap add ios Windows上ではCocoaPodsが利用できないという警告が出ますが、これは想定内です。問題なく、 ios/ フォルダは生成・コミットされ、後ほどクラウドビルドが pod install 実行されます。
エミュレータまたはUSBデバイスで実行:
bunx cap run android
ChromeでWebViewをデバッグ: chrome://inspect.
8) Android リリースビルド
keytool -genkeypair -v -keystore release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias release
cd android
.\gradlew.bat bundleRelease
AABはここにあります: android\app\build\outputs\bundle\release\チーム開発の場合、keystoreは一度 Capgo に保存してクラウドでビルドするのが最適です。詳細は Capgo Android Build を参照してください.
9) Capgo Build を使ったWindowsからのiOSビルド
XcodeはmacOS専用であるため、iOSのコンパイルはCapgoのMacインフラ上で行われます。Windowsのターミナルからは以下の通りです:
bun run build
bunx cap sync ios
bunx @capgo/cli@latest login
bunx @capgo/cli@latest build init --platform ios
bunx @capgo/cli@latest build request com.example.app --platform ios --build-mode release
build init 署名用データを収集します。Windowsの場合、App Store ConnectのAPIキーは、Appleのポータルから手動で作成し、 iOSビルドガイドの手順に従ってください。配布用証明書(Distribution Certificate)にKeychain Accessは不要です。CSRを作成し、 .p12 OpenSSLを使用して(winget install ShiningLight.OpenSSL.Light)またはブラウザベースの iOS証明書ジェネレーターで作成します。ステップバイステップの手順は CapacitorとCapgo Buildを使用してWindowsからiOSアプリをビルドする.
ビルド完了後、CapgoからTestFlightへプッシュできるため、数分後には実機のiPhoneにインストール可能です。
10) 再ビルドなしでWebの変更をリリースする
両方のストアが公開されたら、 Capgo Live Updates JavaScript、HTML、CSSの変更には:
bunx @capgo/cli@latest init
bun run build
bunx @capgo/cli@latest bundle upload --channel production
プラグイン、権限、Capacitor のアップグレード時のみ Native Build が必要です。
Windowsでよくある問題
running scripts is disabled on this system:実行ポリシー。ステップ1を参照してください。SDK location not found:ANDROID_HOMEGradleを実行するターミナルに設定されていません。設定後にターミナルを再起動するか、作成してください。android\local.propertiesを使用してsdk.dir=C\:\\Users\\you\\AppData\\Local\\Android\\Sdk.Filename too longGitまたはGradleから:長いパスを有効にする。ステップ6を参照。- エミュレータが起動時に停止する:ハイパーバイザーが無効、またはBIOSの仮想化設定がオフになっています。
gradlew: bad interpreterCI環境での:gradlewはCRLFでコミットされています。以下の方法で.gitattributesを修正し、リノーマライズしてください。EPERMまたは、実行中のbun install: DefenderやGradleデーモンがファイルをロックしています。デーモンを.\gradlew.bat --stopで停止し、除外設定を追加してください。
まとめ
WindowsではAndroidとWebレイヤーをエンドツーエンドでカバーできます。iOSについては、ローカルでプロジェクトを生成・同期し、 ios/ フォルダを Capgo Buildに渡してください。その上にLive Updatesを組み合わせれば、WindowsチームはオフィスにMacが1台もなくても両方のストアへリリース可能です。Windows上でLinuxシェルを使用したい場合は、こちらのガイドも参考にしてください: Capacitor 開発にWSL2を使用する方法.