Capacitor 6からCapacitor 7へのアップデート
このガイドでは、プロジェクトをCapacitor 7の最新バージョンにアップデートする手順と、公式プラグインの変更点を説明します。
Capacitor 設定ファイルの変更点
bundledWebRuntime
設定オプションが削除されました。もし false
に設定していた場合は、安全に削除できます。もし true
に設定していた場合は、アプリ内で @capacitor/core
のコードをバンドルするために bundler を使う必要があります。
cordova.staticPlugins
設定オプションが削除されました。もしstaticである必要のある Cordova プラグインがある場合は、cordova-ios 7+ ではサポートされていないため、framework
タグを使う代わりに、use-framework
属性を持つ podspec
タグを使うように更新する必要があります。
NodeJS 20+
Node 18は2023年10月18日にアクティブサポートが終了しました。Capacitor 7はNodeJS 20以上を必要とします。(最新のLTSバージョンを推奨します)。
テレメトリーはオプトアウトになりました。
以前Capacitorコマンドを使用したことがある場合、すでにプリファレンスが保存されているので、これは新規ユーザーにのみ影響します。また、CIサーバーのような非インタラクティブな環境ではテレメトリーは実行されません。
npx cap telemetry off
で無効にできます。
CLIを使って移行する
最新バージョンのCapacitor CLIをプロジェクトにインストールする:
npm i -D @capacitor/cli@latest
インストールしたら、以下を実行するだけで、CLIがマイグレーションを処理します:
npx cap migrate
移行のステップのいずれかが完了できなかった場合、ターミナルの 出力に追加情報が表示されます。手動で移行する手順を以下に示します。
iOS
以下のガイドでは、Capacitor 6 iOSプロジェクトをCapacitor 7にアップグレードする方法を説明します。
Xcodeのアップグレード
Capacitor 7はXcode 16.0以上を必要とします。
iOSデプロイメントターゲットの引き上げ
Xcodeプロジェクトに対して以下の操作を行います:プロジェクトエディタ内でProjectを選択し、Build Settingsタブを開きます。Deploymentセクションの下で、iOS Deployment TargetをiOS 14.0に変更します。アプリのTargetsに対しても同じ手順を繰り返します。
次に、ios/App/Podfile
を開き、iOSバージョンを14.0に更新します:
platform :ios, '14.0'
Android
以下のガイドでは、Capacitor 6 AndroidプロジェクトをCapacitor 7にアップグレードする方法を説明します。
Android Studioのアップグレード
Capacitor 7はAndroid Studio Ladybug | 2024.2.1以上とJava JDK 21を必要とします。Java 21はAndroid Studio Ladybugに同梱されています。追加のダウンロードは不要です!
更新が完了したら、Android Studioはgradleやビルドファイルへのパッケージ移動 に関連するいくつかの更新を支援できます。まず、Tools -> AGP Upgrade Assistant
を実行します。
Androidプロジェクト変数の更新
variables.gradle
ファイルを、新しい最小値にアップデートしてください。
minSdkVersion = 23
compileSdkVersion = 35
targetSdkVersion = 35
androidxActivityVersion = '1.9.2'
androidxAppCompatVersion = '1.7.0'
androidxCoordinatorLayoutVersion = '1.2.0'
androidxCoreVersion = '1.15.0'
androidxFragmentVersion = '1.8.4'
coreSplashScreenVersion = '1.0.1'
androidxWebkitVersion = '1.12.1'
junitVersion = '4.13.2'
androidxJunitVersion = '1.2.1'
androidxEspressoCoreVersion = '3.6.1'
cordovaAndroidVersion = '10.1.1'
google services pluginをアップデート
# build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:8.2.1'
- classpath 'com.google.gms:google-services:4.4.0'
+ classpath 'com.google.gms:google-services:4.4.2'
gradle plugin を 8.7.2 にアップデート
# build.gradle
dependencies {
- classpath 'com.android.tools.build:gradle:8.2.1'
+ classpath 'com.android.tools.build:gradle:8.7.2'
gradle wrapper を 8.11.1 にアップデート
# gradle-wrapper.properties
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
- distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-all.zip
+ distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Kotlinバージョンの更新
プロジェクトでKotlinを使用している場合、kotlin_version
変数を'1.9.25'
に更新します。
configChangesにnavigationを追加
これは、Bluetoothキーボードを使用する際に一部のデバイスでアプリの再起動を防ぐためのオプションの変更です。
AndroidManifest.xml
のアプリactivity
のconfigChanges
にnavigation
を追加します。
- android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode|navigation"
プラグイン
プラグインがバージョン7.0.0にアップデートされました。
以下のプラグインの機能が変更または削除されました。それに従ってコードを更新してください。
Action Sheet
androidxMaterialVersion
変数が1.12.0
に更新されました。
App
- 非推奨の型
AppRestoredResult
が削除され、RestoredListenerEvent
を使用します。 - 非推奨の型
AppUrlOpen
が削除され、URLOpenListenerEvent
を使用します。
Browser
androidxBrowserVersion
変数が1.8.0
に更新されました。
Camera
androidxExifInterfaceVersion
変数が1.3.7
に更新されました。androidxMaterialVersion
変数が1.12.0
に更新されました。
Device
getInfo()
はdiskFree
、diskTotal
、realDiskFree
、realDiskTotal
を返さなくなったため、このプラグインのPrivacyInfo.xcprivacy
エントリを削除できます。- 非推奨の型
DeviceBatteryInfo
が削除され、BatteryInfo
を使用します。 - 非推奨の型
DeviceLanguageCodeResult
が削除され、GetLanguageCodeResult
を使用します。
Geolocation
playServicesLocationVersion
変数が21.3.0
に更新されました。
Haptics
- 非推奨の型
HapticsImpactOptions
が削除され、ImpactOptions
を使用します。 - 非推奨の型
HapticsNotificationOptions
が削除され、NotificationOptions
を使用します。 - 非推奨の型
HapticsNotificationType
が削除され、NotificationType
を使用します。 - 非推奨の型
HapticsImpactStyle
が削除され、ImpactStyle
を使用します。
Push Notifications
firebaseMessagingVersion
変数が24.1.0
に更新されました。
Share
androidxCoreVersion
変数が1.15.0
に更新されました。
Splash Screen
- 非推奨の型
SplashScreenShowOptions
が削除され、ShowOptions
を使用します。 - 非推奨の型
SplashScreenHideOptions
が削除され、HideOptions
を使用します。