LinuxはCapacitorの仕事に適したプラットフォームです。ウェブ層はNodeツールのみ、Androidツールはネイティブで動作し、LinuxエミュレータはKVMでよくWindows上の同等のエミュレータよりも速いことがよくあります。ただし、iOSは単一のギャップです: XcodeはmacOS上にしか存在しないため、その部分ではクラウドビルドサービスが必要です。
このガイドでは、Ubuntu 24.04、Fedora 42、およびArchでテストされた完全なLinuxセットアップを歩みます。LinuxからiOSビルドまで Capgoビルド、Macを所有する必要なく両方のストアを配信できます。
Linuxで動作するものと動作しないもの
| タスク | Linux |
|---|---|
| ウェブ開発、Vite、フレームワークツール | はい |
cap add android, cap sync, Gradleビルド |
はい |
| Androidエミュレータ | はい、KVM |
| 物理AndroidデバイスのUSB経由 | はい、udevルール |
| リモートデバッグ用Chrome DevTools | はい |
cap add ios, cap sync ios Capgoのソリューションマーケティングページで使用される短いUIラベルまたはナビゲーションアイテムです。ソリューション/ベータテストページで使用されます。 |
(生成してコピー) |
| はい、CocoaPodsをスキップする警告が表示されます | はい、macOSが必要です。 Capgo を使用してください。 |
| はい、macOSが必要です。__CAPGO_KEEP_0__を使用してビルド | iOSシミュレーター |
| いいえ | iOSシミュレーター |
Safari Web Inspector for iOS WebView
1) Install Node or Bun
CapacitorのCLIは、Node 20以上が必要です。Bunはランタイムとパッケージマネージャとして機能し、インストールが速くなります。
# Bun (recommended)
curl -fsSL https://bun.sh/install | bash
# Or Node via your package manager
# Ubuntu / Debian
sudo apt install -y nodejs npm
# Fedora
sudo dnf install -y nodejs
# Arch
sudo pacman -S nodejs npm
バージョンを確認してください。
bun --version
node --version
2) JDKをインストールしてください。
Capacitor 7と8は、JDK 21が必要です。ディストリビューションパッケージは問題ありません。
# Ubuntu / Debian
sudo apt install -y openjdk-21-jdk
# Fedora
sudo dnf install -y java-21-openjdk-devel
# Arch
sudo pacman -S jdk21-openjdk
設定 JAVA_HOME または ~/.bashrc or ~/.zshrc。
# Ubuntu / Debian
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
# Fedora
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
# Arch
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk
または JAVA_HOME 3) Android __CAPGO_KEEP_0__をインストールしてください。 Unsupported class file major version during cap run android.
SDK
Android StudioからGUIツールが提供されますが、コマンドラインツールだけは、ビルドに十分な軽量なものです。
オプションA: Android Studio
Android StudioサイトからLinux tarballをダウンロードし、展開してください:
sudo tar -xzf android-studio-*.tar.gz -C /opt
/opt/android-studio/bin/studio.sh
初回起動時、セットアップウィザードはSDKをSDKにインストールします。 ~/Android/Sdk.
Capacitorの cap open android __CAPGO_KEEP_0__に、Studioの場所を教えてください。
export CAPACITOR_ANDROID_STUDIO_PATH=/opt/android-studio/bin/studio.sh
オプションB: コマンドラインツールのみ
mkdir -p ~/Android/Sdk/cmdline-tools
cd ~/Android/Sdk/cmdline-tools
# Download "Command line tools only" for Linux from the Android developer site, then:
unzip commandlinetools-linux-*.zip
mv cmdline-tools latest
シェルプロファイルにSDKを追加してください。
export ANDROID_HOME=$HOME/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/emulator
Capacitorに必要なものをインストールし、ライセンスを承認してください。
sdkmanager "platform-tools" "platforms;android-36" "build-tools;36.0.0" "emulator"
sdkmanager --licenses
プラットフォームバージョンを__CAPGO_KEEP_0__の生成された compileSdkVersion __CAPGO_KEEP_0__ 8は36を使用し、__CAPGO_KEEP_1__ 7は35を使用します。 android/variables.gradle.Capacitor 8 の使用 36; Capacitor 7 の使用 35.
4) KVMをエミュレータに有効化してください
KVMが無いとエミュレータは使えません。CPUが仮想化をサポートしているかどうか確認してください:
egrep -c '(vmx|svm)' /proc/cpuinfo
0より大きい結果が出ればサポートされていることを意味します。KVMをインストールし、ユーザーにアクセス権を付与してください:
# Ubuntu / Debian
sudo apt install -y qemu-kvm
# Fedora
sudo dnf install -y qemu-kvm
# Arch
sudo pacman -S qemu-base
sudo usermod -aG kvm $USER
ログアウトし、再度ログインしてください。デバイスを作成し、起動してください:
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
エミュレータが /dev/kvm パーミッションに関する問題を訴えている場合、グループ変更がまだ反映されていない可能性があります。再起動してください。
5) 物理デバイスのUSBアクセス
Linuxでは、通常のユーザーはデフォルトでUSBデバイスにアクセスできません。udevルールを追加してください:
sudo tee /etc/udev/rules.d/51-android.rules > /dev/null <<'EOF'
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", MODE="0666", GROUP="plugdev"
EOF
sudo udevadm control --reload-rules
sudo usermod -aG plugdev $USER
上記のベンダーIDはGoogle、Samsung、OnePlusをカバーしています。自分のベンダーIDを調べるには lsusb ifコマンドを使用してください。リストに表示されていない場合、
adb devices
6) 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 6) __CAPGO_KEEP_0__プロジェクトを作成してください ios/ フォルダはまだ作成され、後のCapgo ビルドで使用されます。
エミュレータまたはデバイスで実行:
bunx cap run android
ChromeでWebViewをデバッグする: chrome://inspect.
7) Linux用のリリースビルド
Android用のリリースビルドは完全にローカルで行われます。JDKの keytool:
keytool -genkeypair -v -keystore release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias release
次にビルド:
cd android
./gradlew bundleRelease
AABは android/app/build/outputs/bundle/release/に到着します。 Capgo Android用ビルド CLI ビルドを使用してAndroid用にビルドします。
8) LinuxからiOSにCapgoビルド
8) LinuxからiOS用に__CAPGO_KEEP_0__ ビルドを使用してビルドします。
- Webアセットをビルドし、__CAPGO_KEEP_0__にSyncします。
ios/. - iOSの署名資格情報を一度保存してください。
- クラウドビルドを要求します。 Capgoは、テストフライトにアップロードするために署名とコンパイルを行います。
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 Linux上でCapacitorを開発する際の設定手順をご案内します。 Linuxでは、App Store ConnectのAPIキーはAppleのポータルで手動で作成します。 iOSビルドの手順書 iOSビルドの手順書 .p12 iOSビルドの手順書 iOSビルドの手順書iOSビルドの手順書 iOSビルドの手順書.
iOSビルドの手順書 Build an iOS app from Linux with Capacitor and Capgo Build.
9) Live Update をスキップする
Live Updates を使用すると、Linux から秒単位で JavaScript、HTML、CSS の変更を配信できます。 Capgo Live Updates:
bunx @capgo/cli@latest init
bun run build
bunx @capgo/cli@latest bundle upload --channel production
Reserve native builds for plugin changes, permission changes and Capacitor upgrades.
プラグインの変更、権限の変更、__CAPGO_KEEP_0__ のアップグレードにnativeビルドを予約します。
SDK location not found:ANDROID_HOMELinux の一般的な問題android/local.propertieswithsdk.dir=/home/you/Android/Sdk.Unsupported class file major version: JDK が間違っています。JDK 21 にポイントしてください。JAVA_HOMEJDK 21.- : KVM が有効になっていません。KVM の有効性とグループメンバーシップを確認してください。__CAPGO_KEEP_0__
ls -l /dev/kvm__CAPGO_KEEP_0__ adb devices表示no permissions: udev ルールが欠落しているか、再読み込みされていない。再読み込み後に機器を外し、再接続してください。- Gradle デーモンがメモリを超過している: 追加
org.gradle.jvmargs=-Xmx4gをandroid/gradle.properties. - ウェイランドとAndroid Studioの不具合Wayland と Android Studio の不具合
_JAVA_AWT_WM_NONREPARENTING=1: Studio を起動する
ウィンドウが白いままの場合
Linux handles the full Capacitor loop for Android and the web layer natively, and often faster than other desktops. For iOS, generate the project locally, sync your assets, and let Capgo Build do the macOS part. Pair that with Live Updates and the only time you think about Xcode is when Apple changes its minimum SDK.