メインコンテンツへスキップ

Capacitor Windowsでの開発:完全セットアップガイド

Windows 11でCapacitorをセットアップ:NodeまたはBun、JDK 21、Android Studioとエミュレータ、USBデバッグ、PowerShellの修正、長いパスの問題、そしてCapgo Buildを使用したMacなしでのiOSビルドまで。

Capacitor Windowsでの開発:完全セットアップガイド

ほとんどの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_HOME Gradleを実行するターミナルに設定されていません。設定後にターミナルを再起動するか、作成してください。 android\local.properties を使用して sdk.dir=C\:\\Users\\you\\AppData\\Local\\Android\\Sdk.
  • Filename too long GitまたはGradleから:長いパスを有効にする。ステップ6を参照。
  • エミュレータが起動時に停止する:ハイパーバイザーが無効、またはBIOSの仮想化設定がオフになっています。
  • gradlew: bad interpreter CI環境での: 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を使用する方法.

Capacitor アプリ向けの Live Updates

Web レイヤーのバグが本番で発生したら、App Store の審査を何日も待たずに Capgo で修正を配信しましょう。ネイティブの変更は通常の審査フローに残したまま、ユーザーはバックグラウンドでアップデートを受け取れます。

最新のブログ記事

Capgoは、真にプロフェッショナルなモバイルアプリを作るために必要な最高のインサイトを提供します。